正则表达式从三个选项中的一个开始

时间:2015-10-09 12:49:31

标签: javascript regex

我正在使用HTML构建一个简单的表单。我正在使用Javascript对各种输入字段执行客户端验证。一个这样的字段是电话号码字段。我正在尝试写一个接受以下内容的Regular Expression

  • 必须从以下三个选项之一开始
    • 44
    • 0044
    • 44
  • 必须接受以下内容
    • 数字0 - 9
    • 空间
    • 连字符
    • 完全停止

目前,我有以下表达式:/^\+([0-9])([ .-]*\d){7,20}$/。但是,这只接受以+44开头的数字,而不是以+44或0044或44开头的数字。我的问题是如何修改上面的正则表达式以检查以确保数字以三个选项之一开头?< / p>

非常感谢您的帮助。

注意

衷心感谢@melpomene向我讲授SO的方法以及如何以适当和合理的格式对我的问题进行梳理。如果不适合你,我不知道今天我会在哪里! :)

2 个答案:

答案 0 :(得分:5)

如果你把

(\+|00)?

在你的正则表达式之前,它接受(可选)+00之前。

尝试

^(\+|00)?([0-9])([ .-]*\d){7,12}$

此致

答案 1 :(得分:0)

^(?:\+|00)?44[\d\s\-.]*\d$将匹配+44,0044和44,后跟任意数字的数字,空格,连字符或点。最终\d确保匹配以数字结束。