我想验证此电话号码,格式为+905555555555。
我如何编写一个正则表达式来测试呢?
一个“ +”和12个数字。提示:转义“ +”。
^\+(90)\([2-5]{1}\)[0-9]{9}
或不以+开头;
\+(90)\([2-5]{1}\)[0-9]{9}
<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
这里是一个很好的学习起点:
如果您需要以“ +”,“ 9”和11位数字开头:
^[+]9\d{11}$
我建议您了解regEx的工作原理,请看一下这个有用的测试仪:http://www.sweeting.org/mark/html/revalid.php
在底部,他们解释了每个运算符的含义。
此外,互联网上还有各种各样的例子。
编辑:在阅读OP的注释之后,为了使数字以“ +90”开头,然后有10位数字,可以使用以下表达式:
^[+]90\d{10}$
要涵盖其他规格,请使用此:
^\+90\([2-5]\)\d{9}$
您绝对需要锚点^
和$
,以确保字符串前后没有任何内容。例如如果您不使用$
,则该数字可以比您指定的12个数字更长。
您可以看到它online here on Regexr
如果正是这种格式,则可以使用类似以下内容的内容:/^\+\d{12}\z/
如果您想在其中允许一些空格/破折号/句号,但仍将其保留为12个数字:/^\+(?:\d[ .-]?){12}\z/
然后,您可以使用以下命令删除其他字符:s/[ .-]+//g
(Perl / etc表示法)
调整了一点以回答12位正则表达式的问题。
// +905555555555 is +90 (555) 555-5555
let num = '+905555555555';
/^\+90\d{10}$/.test(num);
调整了一点以回答12位正则表达式的问题。
// +905555555555 is +90 (555) 555-5555
let num = '+905555555555';
/^\+90\d{10}$/.test(num);