我嘗試使用下面的正則表達式日本的電話號碼
var pattern= /^[0-9-]{10,13}$/i;
應該允許驗證日本的電話號碼正則表達式只以下格式
- 123-456 -7890
- 12-3456-7890
- 123-4567-8901
但是當我嘗試它返回true
var phone_pattern = /^[0-9-]{10,13}$/i;
var value='-----------';
alert(phone_pattern.test(value));
我嘗試使用下面的正則表達式日本的電話號碼
var pattern= /^[0-9-]{10,13}$/i;
應該允許驗證日本的電話號碼正則表達式只以下格式
但是當我嘗試它返回true
var phone_pattern = /^[0-9-]{10,13}$/i;
var value='-----------';
alert(phone_pattern.test(value));
如果你希望它是很容易理解我只用4種可能的模式的交替:
^(?:\d{10}|\d{3}-\d{3}-\d{4}|\d{2}-\d{4}-\d{4}|\d{3}-\d{4}-\d{4})$
這一次在50步根據regex101符合你的4個電話號碼。
如果你希望它是在可讀性的成本多一點效率,你可以因式分解它:
^\d{2}(?:-\d{4}-\d{4}|\d{8}|\d-\d{3,4}-\d{4})$
這一個你4個電話號碼在48步根據regex101匹配。
Aaron,我幾乎可以肯定OP正在測試獨立的字符串,而模式周圍的'^'/'$'是必須的。 –
你最可能是正確的,我已經添加了錨 – Aaron
好,但'^(:\ d {2}(: - ?\ d {4} - \ d {4} | \ d {8} | \ d- \ d {3,4} - \ d {4}))$'包含冗餘的外部非分組:)無論如何,這將工作。 –
此代碼支持您! https://regex101.com/r/9ePPzz/1
^(([0-9]{10}$)|([0-9]{3}-[0-9]{3}-[0-9]{4}$)|([0-9]{2}-[0-9]{4}-[0-9]{4}$)|([0-9]{3}-[0-9]{4}-[0-9]{4}$))
日本的電話號碼總是以零開頭。 正則表達式應該以^0
開頭。 這適用於日本的固定號碼。
^0([1-9]{1}-?[1-9]\d{3}|[1-9]{2}-?\d{3}|[1-9]{2}\d{1}-?\d{2}|[1-9]{2}\d{2}-?\d{1})-?\d{4}$
您可以從字面上在谷歌第一主打爲「日本的電話號碼正則表達式」 –
讓你的答案,你的問題是,10個破折號根據您正則表達式 – mplungjan
好了,從https的正則表達式允許的://要點.github.com/terrancesnyder/1345094和http://www.devcurry.com/2010/03/regular-expression-for-phone-numbers.html不適用於OP中的樣本編號。但是,日本電話號碼的規則不明確,請在問題中說明。 –