基础用法
\d:可以匹配一个数字
\w:可以匹配一个字母或数字
\s:可以匹配一个空格(也包括Tab等空白符)
.:可以匹配任意字符
*:表示任意个字符(包括0个)
+:表示至少一个字符
?:表示0个或1个字符
{n}:表示n个字符
{n,m}:表示n-m个字符
g : 全局匹配;var r1 = /test/g;
i:表示忽略大小写
m:表示执行多行匹配
进阶(更精确匹配)
[]:表示范围,无关顺序
A|B:可以匹配A或B
^:表示行的开头
^\d:表示必须以数字开头
:表示必须以数字结束
[0-9a-zA-Z\_]+ //比如'a100','0_Z','js2015'等等
1、判断正则表达式是否匹配test()
var re = /^\d{3}\-\d{3,8}$/;
re.test('010-12345'); // true
re.test('010-1234x'); // false
re.test('010 12345'); // false
2、提取子串exec()
用()表示的就是要提取的分组(Group)
var re = /^(\d{3})-(\d{3,8})$/;
re.exec('010-12345'); // ['010-12345', '010', '12345']
re.exec('010 12345'); // null
//exec()方法在匹配成功后,会返回一个Array,第一个元素是正则表达式匹配到的整个字符串,后面的字符串表示匹配成功的子串。
//exec()方法在匹配失败时返回null。
正则匹配默认是贪婪匹配,也就是匹配尽可能多的字符
3、上次匹配到的最后索引 lastIndex
var s = 'JavaScript, VBScript, JScript and ECMAScript';
var re=/[a-zA-Z]+Script/g;
// 使用全局匹配:
re.exec(s); // ['JavaScript']
re.lastIndex; // 10
re.exec(s); // ['VBScript']
re.lastIndex; // 20
re.exec(s); // ['JScript']
re.lastIndex; // 29
re.exec(s); // ['ECMAScript']
re.lastIndex; // 44
re.exec(s); // null,直到结束仍没有匹配到
网友评论