我几乎没有用于表单验证的正则表达式,而且我注意到我的项目无法通过firefox访问,因为它没有显示任何内容!但是给出控制台中的错误,SyntaxError: invalid regexp group
nicRegex正在检查我国的国民身份证。格式应为937962723V
或937962723X
或根据当前格式的任何11位数字。
phoneRegex是用我的国家代码检查电话号码。94121212121
或0762323232
const nicRegex = /^(?:19|20)?\d{2}(?:[01235678]\d\d(?<!(?:000|500|36[7-9]|3[7-9]\d|86[7-9]|8[7-9]\d)))\d{4}(?:[vVxX])$/;
发布于 2019-04-20 21:11:47
负查找(在Safari中目前不支持)用于限制前三位数。这个限制可以在负向前看的情况下同样很好地执行,只需要将其放在3位模式之前:
(?:[0-35-8]\d\d(?<!(?:000|500|36[7-9]|3[7-9]\d|86[7-9]|8[7-9]\d)))
应该看起来像
(?!000|500|36[7-9]|3[7-9]\d|86[7-9]|8[7-9]\d)[0-35-8]\d\d
注意,非捕获组在这里是多余的,我删除了它们,并且[01235678]
= [0-35-8]
。
最后的正则表达式看起来像
/^(?:19|20)?\d{2}(?!000|500|36[7-9]|3[7-9]\d|86[7-9]|8[7-9]\d)[0-35-8]\d\d\d{4}[vVxX]$/
发布于 2019-10-03 14:26:18
谨慎使用命名捕获组(或不使用它们)
对我来说,这是因为我认为我会很聪明,并试图使用命名捕获组在我的regex.火狐惩罚了我。
不工作: /(?<text>[a-z]+)/
确实有效: /([a-z]+)/
https://stackoverflow.com/questions/55774080
复制相似问题