2017-10-16 6 views
-1

私は電話番号のために3つの異なる入力フィールドを持っています。各フィールドは米国の電話番号フォーマットのみを許可する必要があります。ここに例があります:HTML5はアメリカの電話番号のみ許可しますか?

(564) 332-9088 //allowed format. 

ユーザーは、上記の例のような形式で電話番号を入力できる必要があります。だから最初の3桁は中括弧()でなければならず、3桁の数字の後にスペース(無視することができます)と、-ダッシュと最後の4桁が続きます。パターン正規表現を作成しましたが、それは()を必要としません。ユーザーはこの形式で電話番号を入力することもできますが、許可しないでください。336-678-8999

誰もが、私はあなたがこの問題にアプローチするためのより良い方法を持っているなら、私が知っているか聞かせてくださいだけ(xxx) xxx-xxxxを受け入れるように私のコードを調整することができます方法を知っている場合は

<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>
。ありがとうございました。

答えて

1

(xxx) xxx-xxxxの形式で入力してください。 >に等しい桁([0-9に一致 - >文字(文字通り(大文字と小文字を区別)が

\d一致 - (xxx)

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

説明

\(後ここ空間は任意です])

{3} - >数量 - 正確に3回一致する

\) - >が文字にマッチする)、文字通り(大文字と小文字を区別)

[ ]? - >マッチ - >は、0と1回の間のスペース、できるだけ多くの回数、必要に応じて恩返し(貪欲)

\dにマッチします([0-9]に等しい)桁

{3} - >数量詞 - 丁度3回

[-]?

にマッチ - >は、可能な限り多くの回数、0と1時間の間にダッシュを一致しますhttps://regex101.com/r/Ws3c1t/1

:必要に応じて(貪欲)

\dバック与える - - >数量詞は、 - ちょうど4回

参照デモを一致>は、数字([0-9]に等しい)

{4}と一致します

関連する問題