本文共 2442 字,大约阅读时间需要 8 分钟。
符号 | 意义 | 例子 |
---|---|---|
. | 除\n以外的任意一个字符 | |
[] | 表示范围 | [0-9]:表示0-9之间的任意一个数字 |
消除正则表达式中的元字符的意义 | [.]:表示. | |
| | 或者 | [0-9]|[a-z]:表示是一个数字或者一个小写字母 |
() | 分组 | ([0-9])([1-5]):两组,从最左边开始计算 |
提升优先级 | [0-9]|([a-z])|[A-Z]:小写字母优先级最高 |
限字符也是元字符的一种
符号 | 意义 | 例子 |
---|---|---|
* | 表达式出现0到多次 | [a-z][0-9]*:小写字母任意一个,后面的数字出现0次或多次 |
+ | 表达式出现1到多次 | [a-z][0-9]+:小写字母任意一个,后面的数字出现1次或多次 |
? | 表达式出现0到1次 | [a-z][0-9]?:小写字母任意一个,后面的数字出现0次或1次 |
阻止贪婪模式 | ||
{} | 表示表达式出现的次数 | {0, }:相当于* |
{1, }:相当于+ | ||
{0,1 }:相当于? | ||
^ | 表示表达式以什么开始 | ^[0-9]:以数字开始 |
取非 | [^0-9]:非数字 | |
$ | 表示表达式以什么结束 | [0-9]$:以数字结束 |
\d | 数字中的任意一个 | 相当于[0-9] |
\D | 非数字中的任意一个 | |
\s | 空白符中的任意一个 | 空格、tab等 |
\S | 非空白符 | |
\w | 非特殊符号 | [相当于[a-zA-Z0-9_] |
\W | 特殊符号 | 相当于[^a-zA-Z0-9_] |
\b | 单词的边界 | |
\t | 水平制表符 | |
\ | 转义符 | |
\f | 换页 |
1.身份证号:15—18位
([1-9][0-9]{14})([0-9]{2}[0-9xX])? 2.座机号码:010-19876754 或 0431-87123490 [0-9]{3,4}[-][0-9]{8} 3.QQ号码:5-11位 [1-9][0-9]{4,10} 4.邮箱 [0-9a-zA-Z_.-]+[@][0-9a-zA-Z_.-]+([.][a-zA-Z]+){1,2}RegExp
test()匹配方法,返回值为booleanvar reg=new RegExp(/\d{5}/);var str="我的电话号码是:10086";var flag=reg.test(str);console.log(flag);//true//(/\d{5}/)=====("\\d{5}")
var reg=/\d{1,5}/;var flag=reg.test("我的电话号码是:888");console.log(flag);//true
1.match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
在正则表达式中,g
表示的是全局模式匹配
var str="中国移动:10086,中国联通:10010";var array=str.match(/\d{5}/);//["10086"]var array1=str.match(/\d{5}/g);//["10086","10010"]
提取日期中的日:
在正则表达式中,()
有分组的意思,可以通过RegExp.$num
来提取其中一个组
var str="2017-11-12";var array=str.match(/(\d{4})[-](\d{2})[-](\d{2})/g);console.log(RegExp.$3);//12
2.replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
var str="小苏好帅哦,真的是太帅了,帅,就是真帅"; str=str.replace(/帅/g,"美"); console.log(str);//小苏好美哦,真的是太美了,美,就是真美
在正则表达式中,i
表示的修改为大小写不敏感
var str="HhpphH"; str=str.replace(/[h]/gi,"S"); console.log(str);//SSppSS
3.exec()方法用于检索字符串中的正则表达式的匹配。
//把里面所有的数字全部显示出来var str = "中国移动:10086,中国联通:10010,中国电信:10000";//var array = str.match(/\d{5}/g);var reg=/\d{5}/g;var array=reg.exec(str);console.log(array);console.log(reg.exec(str));console.log(reg.exec(str));console.log(reg.exec(str));倘若在之后再添加一句
console.log(reg.exec(str));
,结果为:[“10086”] 以上代码也可以写为
var str = "中国移动:10086,中国联通:10010,中国电信:10000"; var reg=/\d{5}/g; //通过正则表达式匹配这个字符串 var array=reg.exec(str); while (array!=null){ //输出匹配的内容 console.log(array[0]); array=reg.exec(str); }
数组和为数组的区别
__proto__
转载地址:http://ktmgn.baihongyu.com/