1

我正在尝试使用以下格式使用regex. 但它在某些条件下失败了。

电话号码:

2323232
0112323232
011-2323232
+91-9898989898
98989898998

regex为上述数字写了这个:

^[+]?(\d{2,4}-)?(\d{7,11})

在这里测试过。

我在以下代码段中使用:

var phonePattern = /^[+]?(\d{2,4}-)?(\d{7,11})/;
if(!(phonePattern.test(formData.phone))){
    $('#errorList').append('<li>Invalid Phone Number</li>');
    error = 1;
}

正则表达式适用于我需要的电话号码,但对于formData.phone = '011-2323232asdasd'. 我是新手regex,它在javascript. 我怎样才能让它工作?请指教。

4

5 回答 5

1

$在您的正则表达式末尾添加:^[+]?(\d{2,4}-)?(\d{7,11})$

它的意思是“文本/行的结尾”,所以你的正则表达式需要只有数字直到字符串的结尾。

于 2013-02-22T11:51:16.100 回答
1

您需要在两端放置锚点^<a-regex-goes-here>$,否则会在比赛结束后放垃圾。

于 2013-02-22T11:51:35.833 回答
0

您需要在代码中添加“以 ($) 结尾”运算符。

/^[+]?(\d{2,4}-)?(\d{7,11})$/

您可能想看看这个 http://www.regular-expressions.info/javascript.html

于 2013-02-22T11:53:47.157 回答
0

试试这个正则表达式/^((\+91)?-?[0\+\(]*\d{2,3}[-\s\)]*\.?\d{3,4}[-\s]*\.?[0-9]{4})$/,这将适用于所有类型的有效电话号码。

在以下条件下返回 true:

1. Just 10 digits
2. +00 0000 0000
3. +1 000 000 000
4. (3 digits)<space>(3 digits)<space>4 digits
5. (3 digits) - 3 digits - 4 digits
6. +91-9898989898

还有更多..

于 2013-02-22T12:41:59.237 回答
0

我想你$最后错过了。采用:

^[+]?(\d{2,4}-)?(\d{7,11})$
于 2013-02-22T16:39:23.430 回答