3

我正在使用 RegEx 来验证用户电话号码。我对电话号码验证有一套要求。我对 RegEX 没有太多想法。任何人都可以帮助我为我的要求提供匹配的 reqex。这里的验证非常简单。

条件

 1. It should allow numbers from 0-9.
 2. It should allow + sign. (+ sign is not mandatory but not allow after even a single letter (ie: should be placed at front.)).
 3. It should allow - sign. (- sign is also not mandatory and can be placed anywhere)
 4. It should allow empty space everywhere.
 5. No dots or no other chars allowed except the above said things.

正确的值

+65-12345678
65-12345678
6512345678
65 12345678
65 123 45678
65 123-45678
+65 123-45678
1234

不正确的值

12345+86666
123alpha

谢谢

4

3 回答 3

7

根据您的样本,试试这个:

^(?:\+?\d{2}[ -]?\d{3}[ -]?\d{5}|\d{4})$

它将匹配所有正确的值。

描述:

正则表达式可视化

演示:

http://regexr.com?340nf

于 2013-03-05T11:02:07.213 回答
6

只是为了帮助您建立一些概念。
以下正则表达式将匹配您提供的前七个输入。

/^\+?\d{2}[- ]?\d{3}[- ]?\d{5}$/

\+?将匹配一个+标志。在?其中使+符号可选。
\d{2}匹配两个数字
[- ]?匹配 a-或 a (空格)。?使-or (space) 的出现是可选的。
\d{5}然后匹配 5 个数字。
^并且$是开始和结束锚点。

于 2013-03-05T11:04:02.467 回答
2

根据您的示例尝试此模式。

^(?:\+?\d{2}[ -]?[\d -][\d -]+)$
于 2013-03-05T11:11:42.017 回答