带括号的 HTML 电话号码验证

Jos*_*han 2 html regex validation html-input phone-number

我如何验证这样的模式......

(562) 810-5566 或 (714) 433-4434

请注意,它将包含括号和空格。

我当前的输入控件如下所示:

<input type="tel" data-tel-msg="Invalid Phone Number!" class="k-textbox" pattern="^\d{3}-\d{3}-\d{4}$" required />
Run Code Online (Sandbox Code Playgroud)

我知道当前模式匹配 3334445555,但这不是我正在寻找的,当我尝试添加括号时,JavaScript 控制台只是给出了错误正则表达式语法错误。

另外,如果您知道如何让它显示自定义错误消息,这也会有所帮助。目前我的 data-tel-msg 无法正常工作。

Wik*_*żew 5

您可以使用以下代码:

input:valid {
  color: green;
}
input:invalid {
  color: red;
}
Run Code Online (Sandbox Code Playgroud)
<form name="form1">
 <input value="(555) 324-5643" type="tel" title="Invalid Phone Number!" class="k-textbox" pattern="[(][0-9]{3}[)] [0-9]{3}-[0-9]{4}" required />
 <input type="Submit"/> 
</form>
Run Code Online (Sandbox Code Playgroud)

正则表达式\(\d{3}\)\s\d{3}-\d{4}匹配字符串的格式(###) ###-####,因为默认情况下 HTML5 模式是锚定的(到字符串的开头和结尾)。

title属性允许显示错误文本。

如果反斜杠在您的环境中丢失,只需将它们加倍,或替换\d[0-9]。要匹配文字,\(您还可以使用字符类:([(]):相同[)])。在字符类中,这些()失去了它们的“特殊”分组含义。