【问题标题】:Angularjs validation not working on copy-pasteAngularjs验证不适用于复制粘贴
【发布时间】:2017-10-17 07:26:03
【问题描述】:

我正在尝试使用 ng-pattern 和 tel-Mask 指令创建基于美国的电话号码验证 ###-###-####..

如果我做简单的复制粘贴1234567890,它可以正常工作,但是

复制粘贴有效的电话号码并将其删除时, 然后再次复制粘贴然后给出错误..

这里正在运行 jsFiddle:https://jsfiddle.net/9xrx87mw/1/

【问题讨论】:

标签: javascript angularjs regex angular-material


【解决方案1】:

在 JS 代码中,您从数字中删除连字符,并且模式要求出现连字符。将它们设为可选并使用

ng-pattern="/^[0-9]{3}-?[0-9]{3}-?[0-9]{4,5}$/" 
                       ^         ^

请参阅updated demo

显示的值稍后会重建,因此允许匹配 1 次或 0 次出现的量化子模式的 ? 量词将按预期工作。

【讨论】:

  • 首先感谢上述内容。但是当我输入有效的电话号码并在框外单击(模糊事件)并再次尝试输入额外的内容(字母或无数字字母)时出现错误,可以您提出了解决方案。
  • 对不起,我试图检查那部分,但它似乎与字符串传递给正则表达式的方式和时间有关,这已经使问题过于宽泛。请记住,删除连字符后,它们在模式中必须是可选的。
猜你喜欢
  • 2021-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-13
  • 2014-10-06
  • 1970-01-01
相关资源
最近更新 更多