正则表达式验证不允许提交以给定顺序开头的数字

时间:2014-03-02 14:01:33

标签: regex validation

我们遇到了垃圾邮件发送者的问题,我想在我的表单中的电话字段中添加验证正则表达式,以便不允许以特定数字序列开头的输入。

我正在使用wordpress插件来构建表单,我可以为每个字段添加自定义正则表达式验证。 所以在我的手机领域的那一刻,我正在使用文本字段,我有这个正则表达式只允许数字:/ ^ \ d + $ /

我要阻止的前缀是这些: +44704,+ 44714,0704,0714,0044704,0044714

是否可以创建一个正则表达式来检查输入是否以这些序列之一开始,如果是,它会阻止它们?

如果可能的话,我需要它只允许只允许数字,除非允许它不是从这些序列中的一个开始。

我希望有人能够帮助我,因为我根本不理解正则表达式。:(

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用可选组,如下所示:

^\+?(?:(?:00)?44|0)7[01]4

regex101 demo

此正则表达式仅匹配以您描述的模式开头的字符串。为了否定它,你可以使用上面的模式的负向前瞻:

^(?!\+?(?:(?:00)?44|0)7[01]4)

^匹配行的开头

\+?匹配可选的+符号。

(?:(?:00)?44|0)匹配:0044,或44,或0

7[01]4匹配704或714。


要验证整个条目字符串并阻止匹配,请添加您已有的位,并使用可选的+符号:

/^(?!\+?((00)?44|0)7[01]4)\+?\d+$/