2011-05-13 236 views
0

我想驗證這種格式的電話號碼+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

回答

2

一個「+」和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

0

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

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

0

,如果你需要它來啓動一個「+」和「9」和11位:

^[+]9\d{11}$ 

我建議你瞭解正則表達式的工作,看看這個有用的測試儀: http://www.sweeting.org/mark/html/revalid.php

在底部,他們解釋什麼是每個運營商表示。

在互聯網上也有各種各樣的例子。

編輯:閱讀OP的意見,爲了使號碼,開始與「+90」,然後有10位數字後,您可以使用下面的表達式:

^[+]90\d{10}$ 
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

而一個好的起點,學習是在這裏:

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

1

爲了彌補您的附加規範使用:

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

你一定要錨^$,以確保前面有什麼或你的字符串之後。例如如果您不使用$,該數字可能會更長,如您指定的12個數字。

你可以看到它online here on Regexr