我想验证此格式的电话号码+905555555555。
如何编写正则表达式来测试它?
答案 0 :(得分:2)
一个“+”和12个数字。提示:逃避“+”。
^\+(90)\([2-5]{1}\)[0-9]{9}
或不以+;
开头\+(90)\([2-5]{1}\)[0-9]{9}
答案 1 :(得分:1)
<script type="text/javascript">
var test = "+905555555555";
var re = new RegExp(/^\+[0-9]{12}$/gi);
if(re.test(test))
{
alert("Number is valid");
} else {
alert("Number is not valid");
}
</script>
查看此网站以测试您的正则表达式:http://www.regextester.com/index2.html
这里有一个很好的学习起点:
答案 2 :(得分:1)
要涵盖您的其他规格,请使用:
^\+90\([2-5]\)\d{9}$
你肯定需要锚点^
和$
来确保你的字符串前面或后面没有任何内容。例如如果您不使用$
,则该号码可以比指定的12个号码更长。
你可以看到它online here on Regexr
答案 3 :(得分:0)
如果它正是那种格式,那么您可以使用类似:/^\+\d{12}\z/
如果你想在其中允许一些空格/短划线/句号,但仍然保持12个数字:
/^\+(?:\d[ .-]?){12}\z/
然后你可以删除那些其他字符:
s/[ .-]+//g
(Perl / etc表示法)
答案 4 :(得分:0)
如果你需要它以“+”和“9”和11位开头:
^[+]9\d{11}$
我建议您了解regEx的工作方式,看看这个有用的测试人员: http://www.sweeting.org/mark/html/revalid.php
在底部,他们解释了每个运算符的含义。
互联网上也有各种各样的例子。
编辑:在阅读OP的评论后,为了使数字以“+90”开头,然后有10位数,您可以使用以下表达式:
^[+]90\d{10}$
答案 5 :(得分:0)
调整了回答12位正则表达式的问题。
// +905555555555 is +90 (555) 555-5555
let num = '+905555555555';
/^\+90\d{10}$/.test(num);