2017-10-16 53 views
-1

我有三個不同的電話號碼輸入字段。每個字段只能使用美國的電話號碼格式。這裏是例子:HTML5只允許美國電話號碼?

(564) 332-9088 //allowed format. 

用戶應該只能以我在上面的例子中輸入的格式輸入電話號碼。所以前三位數字應該在大括號()中,然後空格(可以忽略)後跟3位數字,然後-破折號和最後四位數字。我創建了模式正則表達式,但不需要()。用戶可以輸入這種格式的電話號碼336-678-8999,不應該被允許。

<form name="testFrm" id="testFrm" method="POST" action="#"> 
 
    <label for="wphone">Work Phone:</label> 
 
    <input type="tel" name="phoneW" id="phoneW" pattern="(?:\(\d{3}\)|\d{3})[- ]?\d{3}[- ]?\d{4}" maxlength="14" title="US based Phone Number in the format of: (123) 456-7890" placeholder="(xxx) xxx-xxxx" required /> 
 
    <span><input type="submit" name="frmSubmit" id="frmSubmit" value="Submit" /></span> 
 
</form>

如果有人知道我怎麼能調整我的代碼只(xxx) xxx-xxxx接受請讓我知道,或者如果你有更好的方法來解決這個問題。謝謝。

回答

1

我覺得這樣會適合只有(xxx) xxx-xxxx格式。這裏空間是可選的(xxx)

\(\d{3}\)[ ]?\d{3}[-]?\d{4} 

說明後

\( - >一數字(等於[0-9匹配 - >

\d字符(字面(區分大小寫)匹配])

{3} - >量詞 - 完全匹配3次

\) - >的字符匹配)從字面上(區分大小寫)

[ ]? - >匹配的次數儘可能零週一時間之間的空間,根據需要(貪婪)

\d回饋 - >匹配一個數字(等於[0-9])

{3} - >量詞 - 精確匹配的3倍

[-]? - >零個一次,多次之間匹配破折號越好, >一個數字匹配(等於[0-9])

{4} - - >量詞 - 根據需要(貪婪)

\d回饋精確匹配4次

見演示:https://regex101.com/r/Ws3c1t/1

相關問題