【问题标题】:Html5 Phone Number Validation with Parenthesis带括号的 Html5 电话号码验证
【发布时间】:2016-05-01 13:20:43
【问题描述】:

非常简单的问题...如何在 html5 中验证这样的模式...

(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 />

我知道当前模式匹配 3334445555,但它不是我想要的,当我尝试添加括号时,javascript 控制台只是给出了一个错误,不正确的正则表达式语法。在此处需要语法方面的帮助。

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

【问题讨论】:

标签: regex html input html-input html5-validation


【解决方案1】:

您可以使用以下代码:

input:valid {
  color: green;
}
input:invalid {
  color: red;
}
<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>

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

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

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

【讨论】:

  • 成功了!我将输入更改为 ' 现在可以使用了跨度>
  • 角色类的想法更好,更干净,也很好用
猜你喜欢
  • 2013-11-05
  • 1970-01-01
  • 1970-01-01
  • 2012-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多