我正在尝试使用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'
也返回true。我不熟悉regex
及其在javascript
中的用法。我怎样才能让它工作?请提供建议。
您需要在两端放置锚点(如^<a-regex-goes-here>$
,否则比赛结束后会出现垃圾。
在正则表达式的末尾添加$
:^[+]?(d{2,4}-)?(d{7,11})$
它的意思是"文本/行的末尾",所以您的regexp需要在字符串末尾之前只有数字。
您需要在代码中添加一个"end with($)"运算符。
/^[+]?(d{2,4}-)?(d{7,11})$/
你可能想看看这个http://www.regular-expressions.info/javascript.html
试试这个正则表达式/^((+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
还有更多。。
我想你最后错过了一个$
。用途:
^[+]?(d{2,4}-)?(d{7,11})$