HTML5只允许美国电话号码?

时间:2017-10-16 16:00:39

标签: javascript jquery html5 html5-validation

我有三个不同的电话号码输入字段。每个字段应仅允许美国电话号码格式。这是一个例子:

(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 个答案:

答案 0 :(得分:1)

我认为这对您来说只允许 (xxx) xxx-xxxx格式。 (xxx)

后,空格是可选的
\(\d{3}\)[ ]?\d{3}[-]?\d{4}

解释

\( - &gt;匹配字符(字面意思(区分大小写)

\d - &gt;匹配一个数字(等于[0-9])

{3} - &gt;量词 - 恰好匹配3次

\) - &GT;字面匹配字符(区分大小写)

[ ]? - &GT;匹配空间在0到1次之间,尽可能多次,根据需要返回(贪婪)

\d - &gt;匹配一个数字(等于[0-9])

{3} - &GT;量词 - 恰好匹配3次

[-]? - &GT;匹配在0到1次之间,尽可能多次,根据需要返回(贪婪)

\d - &GT;匹配一个数字(等于[0-9])

{4} - &GT;量词 - 恰好匹配4次

请参阅演示:https://regex101.com/r/Ws3c1t/1