博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
正则表达式介绍
阅读量:4918 次
发布时间:2019-06-11

本文共 2550 字,大约阅读时间需要 8 分钟。

愿君学长松,慎勿作桃李------唐.李白(与君共勉)

忙里偷闲,总结一下正则表达式,希望可以给君带来一定的帮助!!!!

正则表达式

一、什么是正则表达式

正则表达式是被用来匹配字符串中的字符组合的模式在javascript中,

正则表达式也是对象被用于RegExp的exec()和test(),string的match(),replace(),search(),split();

二、如何创建

1.字面量  var re=/abc/  2.调用RegExp对象的构造函数  var re=newe RegExp('abc');

三、 用法

1.切割字符串(分割字符串变成数组) split   var str="ddfadfdafdfjagfg".split(/a/);   console.log(str);//["ddf", "dfd", "fdfj", "gfg"]   2.寻找匹配的字符串、返回索引值 search   var str="sfsdfea".search(/d/);   console.log(str);//3 如果找不到返回-1;   3.寻找匹配字符串返回一个数组 match   var str='abbcccbbbbbddbbbdabbb'.match(/b+/g)//b+,b出现1次或更多次, b*出现0次或更多次    console.log(str);   4.替换匹配到的字符串 replace   var str="www.sina.com".replace(/sina/,"baidu");   console.log(str);   5. exec在字符串中寻找匹配字符串,该方法比其他正则方法或字符串方法支持的更复杂   var str= /abc/.exec('aaaabccccbacabc')   console.log(str);   console.log(str.index);//3   6.检测字符串是否匹配正则表达式 test()   var str= /abc/.test('aaddccddabcddeeddfff')   console.log(str);//true 返回的是布尔值

四、正则表达式中特殊字符

正则表达式:由一些普通字符和一些特殊字符(又叫元字符)组成

普通字符:大小写字母和数字等

特殊字符则具有特殊含义(js中常用的特殊字符有(){ }[] \ $ | ? * + .)若想匹配这类字符必须转义

预定义特殊字符:

+ \t  /\t/  制表符   eg: console.log(/\t/.test(' ')) + \n  /\n 回车符   eg: console.log(/\n/.test(`aaa+   bbb`));+ \f  /\f/  换页符   + \b  /\b/  与回退字符

 

五、正则表达式字符集

1、正则内部类

预定义类

/./ 除了换行和回车其他任意字符都支持/\d/ 匹配数字/\D/ 匹配非数字/\s/ 匹配空白/\S/ 匹配非空白/\w/ 匹配字母单词字符如:[a-zA-Z_0-9]/\W/ 非单词字符

 

简单类 // [ ]

/string/.test("string") 必须匹配完整的字符 只多不能少/string/.test("stringfff")//true/string/.test("strin")//false;/[andy]/.test("and") 只要包含其中一个字符即为true/[andy]/.test("a")//true

 

负向类(取相反) ^

 /[^abc]/.test("abc")//false (不够和正好,返回false,多了返回true)
  /[^abc]/.test("ab")//false
  /[^abc]/.test("a")//false
  /[^abc]/.test("abcd")//true

 

范围类

/[a-z]/.test("12")//false 表示a-z之间所有的小写字母/[0-9]/.test("12")//true 表示0-9之间所有的数字

 

组合类

/[a-zA-Z0-9]/.test("ff")//true 表示小写字母a-z之间大写字母A-Z之间,数字0-9之间

 

2、正则边界

^ 匹配行或者字符串的起始位置 注意:^在[]中才表示非$ 会匹配行或字符串的结尾位置

 

3、量词

*(贪婪) 重复零次或更多(>=0)+(懒惰) 重复一次或更多次(>=1)?(占有) 重复零次或一次 (0||1) 要么有,要么没有{} 重复多少次的意思{n}重复n次 如:你的密码只有6位 {
6}{n,} 重复n次或更多(>=n){n,m} 重复出现比n多比m少 (n<=x

 

4、修饰符

g 修饰符用于执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。'12a34b56c78d90e'.match(/\d+/) => ["12"]'12a34b56c78d90e'.match(/\d+/g) => ["12", "34", "56", "78", "90"]i 修饰符用于执行对大小写不敏感的匹配。'aabAAcAa'.match(/aa/g) => ["aa"]'aabAAcAa'.match(/aa/gi) => ["aa", "AA", "Aa"]

 

5、分组

虽然量词的出现,能帮助我们处理一排密紧密相连的同类型字符。但这是不够的,我们用中括号表示范围内选择,大括号表示重复次数。如果想获取重复多个字符,我们就要用小括号进行分组了。/(bye){
2}/.test('byebye')=> true/(bye){
2}/.test('bye')=> false

 

6、匹配中文

匹配中文:[\u4e00-\u9fa5]/[\u4e00-\u9fa5]+/.test('爱创课堂')=> true/[\u4e00-\u9fa5]+/.test('aaa')=> false

 

转载于:https://www.cnblogs.com/shengmo/p/8649417.html

你可能感兴趣的文章
设计模式系列一创建型模式之(简单工厂VS工厂方法)
查看>>
严重: Exception starting filter struts2问题
查看>>
Node.js 使用angularjs取得Nodejs http服务端返回的JSON数组示例
查看>>
重装上了Fedora8自带的MySQL5.0.45,再试,告捷!!
查看>>
AI1.1-人工智能史
查看>>
Mybatis typeAliases别名
查看>>
12 将类处理为excel,再将excel处理为类(界限计划3)
查看>>
《Effective C#》读书笔记——条目24:用委托实现回调<使用C#表达设计>
查看>>
C++刷题——2802: 推断字符串是否为回文
查看>>
24 小时时间比较大小
查看>>
Java实现CORS跨域请求
查看>>
浅谈php web安全
查看>>
转载:C++运算符优先级
查看>>
《A Survey of Answer Extraction Techniques in Factoid Question Answering》Reading Notes
查看>>
查询数据库中的满足特定条件的数据
查看>>
BZOJ 4260 trie树
查看>>
Netty socket.io 启用Epoll 模式异常
查看>>
权限修饰符(访问指示符)——《Thinking in Java》随笔006
查看>>
使用iostat分析IO性能
查看>>
Maximum number of WAL files in the pg_xlog directory (1)
查看>>