前端常用的正则表达式及正则对象常用方法

1.手机号验证   /^1[34578]\d{9}$/

2.邮箱验证 /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+$/

3. 身份证  /^(/d{15})|(/d{18})|(/d{17}(/d|X|x))$/

4. 账号合法性验证,只能包含数字字母下划线汉字,并不能以数字开头  /^/D/w*$/

5. 护照验证 /^[A-Za-z0-9]{5,17}$/

6. 港澳通行证 /^[HMhm](/d{10}|/d{8})$/

7.台湾通行证 /^/d{8}|/d{10}$/


内容有点少,刚好发现关于JS正则对象的一些方法不熟悉,就列在下面吧


定义方式:1./正则表达式/[flags]  2.new RegExp('正则表达式'[,flags]);

flags:匹配规则。g表示对字符串所有部分起作用,没设置则只匹配最开始匹配到的子串。 坑:声明了g模式的正则表达式实例会内部维护一个index的值,该值会在匹配一次后更新为匹配字符串起始下标,下次再匹配会从这个下标开始扫描(即使不是原来的字符串),而前面的字符不再匹配。重置方法:更改正则对象的lastIndex为0即可,regInstace.lastIndex = 0。

                           i表示忽略大小写

                           m表示匹配多行。此时^/$还可以和每一行的行首/行尾匹配,没设置则只能匹配整个字符串的首/尾



常用方法:使用^$则匹配整个字符串,否则只匹配子串(可能会有多余的其他字符)

regExpInstance.test(): 返回boolean类型,判断参数字符串是否匹配正则表达式.

regExpInstance.exec():返回一个数组对象,第一个对象为匹配成功的子串(从左往右匹配的第一个),如果有分组,则数组后面的元素为每个分组匹配到的子串,此外该数组对象还有两个属性index(子串起始下标),input(原始字符串)。

regExpInstance.compile("pattern"[,"flags"]):更换匹配规则,此方法比重新给regExpInstance变量声明一个正则对象要有效率一些。


String提供的与正则表达式相关的函数

str.search(parttern):返回找到的第一个子串的下标,不受g模式影响

str.replace(parttern, newStr) : 替换匹配的子串。受g模式影响,使用g模式替换所有符合要求的子串

str.split(parttern): 根据匹配的子串位置分割字符串并返回数组。这个需要注意的地方也不少。给个例子自己去悟吧。

var reg = /[a,s]/;
var str = 'sadasd';
console.dir(str.split(reg)); //输出[ '', '', 'd', '', 'd' ]

str.match(parttern):如果非g模式,则结果与regInstance.exec一样,如果为g模式,则返回所有符合的子串数组,并且不携带额外属性。

ES6对正则对象有些变化,并增加了一些修饰符flags,参见: 链接


猜你喜欢

转载自blog.csdn.net/u014445339/article/details/66477382