JavaScript Regex匹配没有匹配



我有一个RegEx^(?:(?:3[0-9][0-9]{6,9})|(?:0[1-9][0-9]{6,9}))$工作良好。但我想添加一个特定的数字:(?!(?:315678901))$,它自己工作得很好。但是把这两个词结合起来就会把这个表达搞砸。什么好主意吗?

我用它来包括某些(意大利语)电话号码,但不包括一个特定的电话号码。

使用:^(?!315678901$)(?:3d|0[1-9])d{6,9}$

这里(?!315678901$)完全滤除315678901和允许与表达式匹配的其他数字。它也允许以315678901开头的数字,但不允许315678901。

同时,我把你的修改组压缩为(?:3d|0[1-9])d{6,9}

Demo at regex101.

可以使用正向向前看断言(?!…)组合这两个表达式,以从原始表达式中排除特定的数字315678901。结果正则表达式将是:

^(?:(?!315678901)(?:3[0-9][0-9]{6,9})|(?:0[1-9][0-9]{6,9}))$

最新更新