我需要使用正則表達式檢查/替換表單字段中的電話號碼,它應該很簡單。 我無法找到在此格式解決方案:正則表達式 - 簡單的電話號碼驗證
「場所數」
這樣: 「0521 123456789」
不應該有其他的工作。沒有特殊的字符,沒有國家等
只是「0521 123456789」
如果有人能提供解決方案,我不是專家,正則表達式(和PHP)將是偉大的。
我需要使用正則表達式檢查/替換表單字段中的電話號碼,它應該很簡單。 我無法找到在此格式解決方案:正則表達式 - 簡單的電話號碼驗證
「場所數」
這樣: 「0521 123456789」
不應該有其他的工作。沒有特殊的字符,沒有國家等
只是「0521 123456789」
如果有人能提供解決方案,我不是專家,正則表達式(和PHP)將是偉大的。
您可以使用下面的正則表達式:
^0[1-9]\d{2}\s\d{9}$
,將匹配它,它是如何準確
它是如何工作的:
^ # String Starts with ...
0 # First Digit is 0
[1-9] # Second Digit is from 1 to 9 (i.e. NOT 0)
\d{2} # 2 More Digits
\s # Whitespace (use a [Space] character instead to only allow spaces, and not [Tab]s)
\d{9} # Digit 9 times exactly (123456789)
$ # ... String Ends with
PHP
代碼:
$regex = '~\d{4}\h\d{9}~';
$str = '0521 123456789';
preg_match($regex, $str, $match);
看到一個demo on ideone.com。
允許只有這種模式(即無其他字符),你可以錨它的開頭和結尾:
$regex = '~^\d{4}\h\d{9}$~';
好吧,我試圖用「\ d {3,5} \ S \ d {4,14}「導致前綴(即0521)有時更長等等,但仍然有一點點錯誤,特殊的char +被接受,正則表達式應該檢查是否只有使用數字 –
@DanielMcDonald你需要[錨](http://www.regular-expressions.info/anchors.html)模式:'^ \ d {4} \ s \ d {9} $'或使用[單詞邊界](http:// www 。regular-expressions.info/wordboundaries.html)如果數字可能出現在文本中的任何位置:'\ b \ d {4} \ s \ d {9} \ b' –
呃,好吧,幾乎完美。現在它要求第一個數字應始終爲零「0」,第二個數字可以是任何但不是0(零)...所以「0521 1234567」或「040 23456」..... –