RegEx电话号码验证

RegEx电话号码验证

问题描述:

我想验证这种格式的电话号码+905555555555。RegEx电话号码验证

如何编写正则表达式来测试这个?

+2

也许不适合你困难的,但如果它不是为OP他/她不会张贴了这个问题。 – jackJoe 2011-05-13 08:13:38

+0

一个“+”和12个数字。提示:逃避“+”。 – DanielB 2011-05-13 08:14:00

+0

@jackJoe,但要学习他应该尝试的东西。也许他可以张贴他之前尝试过的一些例子。 – DanielB 2011-05-13 08:15:14

一个“+”和12个数字。提示:逃避“+”。

^\+(90)\([2-5]{1}\)[0-9]{9} 

或不开始与+;

\+(90)\([2-5]{1}\)[0-9]{9} 
+0

谢谢但是+90 .. 5 ..之后的数字必须是[2-5] like +90(2)642586989或+90(3)642546987 +90(4)642546987 +90(5)642546987您得到它了? – PsyGnosis 2011-05-13 08:21:03

+0

并且仅以+90 – PsyGnosis 2011-05-13 08:25:39

+0

开始我根据您的意见进行了更新。 – 2011-05-13 08:28:20

如果它正是格式,那么你可以使用类似:/^\+\d{12}\z/

如果你想允许它的一些空间/破折号/期,但仍保持在12号: /^\+(?:\d[ .-]?){12}\z/ 然后,你可以删除那些其他字符有: s/[ .-]+//g(的Perl /等符号)

,如果你需要它来启动一个“+”和“9”和11位:

^[+]9\d{11}$ 

我建议你了解正则表达式的工作,看看这个有用的测试仪: http://www.sweeting.org/mark/html/revalid.php

在底部,他们解释什么是每个运营商表示。

在互联网上也有各种各样的例子。

编辑:阅读OP的意见,为了使号码,开始与“+90”,然后有10位数字后,您可以使用下面的表达式:

^[+]90\d{10}$ 

<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

而一个好的起点,学习是在这里:

http://www.regular-expressions.info/

为了弥补您的附加规范使用:

^\+90\([2-5]\)\d{9}$ 

你一定要锚^$,以确保前面有什么或你的字符串之后。例如如果您不使用$,该数字可能会更长,如您指定的12个数字。

你可以看到它online here on Regexr