用new创建正则表达式的字符串注意事项

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用new创建正则表达式的字符串注意事项相关的知识,希望对你有一定的参考价值。

例子:验证个人身份证的正则表达式创建

var regex = new RegExp("^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|(X|x))$")

这样创建出来的正则表达式变为:

/^[1-9]d{5}[1-9]d{3}((0d)|(1[0-2]))(([0|1|2]d)|3[0-1])d{3}([0-9]|(X|x))$/

d前面都没有了反斜杠,是因为\是字符串里的特殊字符,字符串里需要用两个\才能表示出一个\

 

正确做法:

var regex = new RegExp("^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([0-9]|(X|x))$")

这样才能创建出正确的正则表达式

/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|(X|x))$/

以上是关于用new创建正则表达式的字符串注意事项的主要内容,如果未能解决你的问题,请参考以下文章

14正则表达式

正则表达式 RegExp

js-正则表达式边界符和前瞻后顾的使用-保证你看明白

JavaScript 正则表达式

正则表达式教程——实践篇

c#用正则表达式提取小括号中的内容