javascript中正则表达式中的问号(?) 总结

1 分组的时候,?可以不记录一些组,比如:

var str="abc"; var reg=/(?:a)b(c)/g reg.test(str); alert(RegExp.$1);//结果为c

此时虽然第一个小括号也满足,但是如果用?:标注之后,它不会被存入正则表达式的缓存中。

2 遇见功能,"?=",意识说目标串中肯定存在什么,比如:

var str="ab4"; var reg=/ab(?=d)/g alert(reg.test(str));//结果为true

意思是第三位肯定是数字;

"?:",意思说目标串中不应该存在什么 var str="ab1"; var reg=/ab(?!d)/g alert(reg.test(str));//结果为false

意思是目标串中的第三位不应该是数字。

1 分组的时候,?可以不记录一些组,比如: var str="abc"; var reg=/(?:a)b(c)/g reg.test(str); alert(RegExp.$1);//结果为c 此时虽然第一个小括号也满足,但是如果用?:标注之后,它不会被存入正则表达式的缓存中。 2 遇见功能,"?=",意识说目标串中肯定存在什么,比如: var str="ab4"; var reg=/ab(?=d)/g alert(reg.test(str));//结果为true 意思是第三位肯定是数字; "?:",意思说目标串中不应该存在什么 var str="ab1"; var reg=/ab(?!d)/g alert(reg.test(str));//结果为false 意思是目标串中的第三位不应该是数字。
经验分享 程序员 微信小程序 职场和发展