我有這樣一個至今用於驗證我的形式的電話號碼:簡單的修復正則表達式驗證
/^\s*\+?\s*([0-9]+\s*)+\s*(\((\+?[0-9]+\s*)+\))?\s*[0-9-\s]*[0-9]\s*$/
它適用於像這些數字:+021 (+12) 113-2145
,但我需要添加一個擴展到它的結尾是這樣的:+021 (+12) 113-2145 x 123
所以我怎麼能添加字符x
和之後的數字?
x
和數字之間的空格也應該是可選的,就像我上面的代碼一樣。
有什麼想法嗎?謝謝!
我有這樣一個至今用於驗證我的形式的電話號碼:簡單的修復正則表達式驗證
/^\s*\+?\s*([0-9]+\s*)+\s*(\((\+?[0-9]+\s*)+\))?\s*[0-9-\s]*[0-9]\s*$/
它適用於像這些數字:+021 (+12) 113-2145
,但我需要添加一個擴展到它的結尾是這樣的:+021 (+12) 113-2145 x 123
所以我怎麼能添加字符x
和之後的數字?
x
和數字之間的空格也應該是可選的,就像我上面的代碼一樣。
有什麼想法嗎?謝謝!
首先,你可以用更短的更換\d
的[0-9]
所有實例。 (小數位數)
然後,將其添加到原正則表達式:
(x\s*[\d]{3})?
因此,這將是
/^\s*\+?\s*([\d]+\s*)+\s*(\((\+?[\d]+\s*)+\))?\s*[\d-\s]*[\d]\s*(x\s*[\d]{3})?$/
編輯:所做的擴展選項
編輯2:使用\d
代替[0-9]
也沒有工作:(格式應該是'+021(+12)113-2145 x 123'或者'+021(+12)113-2145 x123'或者'+021(+12)113-2145x 123'或者'+021(+12)113-2145x123'這樣,謝謝! – Abude
它的工作原理: )非常感謝您的幫助 – Abude
非常好!很高興爲您提供幫助。 – LonelyWebCrawler
嘗試:
/^\s*\+?\s*([0-9]+\s*)+\s*(\((\+?[0-9]+\s*)+\))?\s*[0-9-\s]*[0-9]\s*(x\s*[0-9]+)?$/;
加了:(X \ S * [0-9] +)?; 編輯:
$pattern = '/^\s*\+?\s*([0-9]+\s*)+\s*(\((\+?[0-9]+\s*)+\))?\s*[0-9-\s]*[0-9]\s*(x\s*[0-9]+)?$/';
$subject = '+021 (+12) 113-2145 x 123';
if(preg_match($pattern, $subject))
echo 'matched';
看起來你很瞭解正則表達式。你爲什麼不在你的正則表達式中添加'x'和分機號碼? – LonelyWebCrawler
我在很多方面嘗試過,但沒有工作,所以也許我錯過了一些東西:)需要一點幫助。謝謝! – Abude
擴展是否可選? – LonelyWebCrawler