[英]Regular expression ng-pattern angularjs
我必须验证输入字段,但是当用户在输入中复制和粘贴某些内容时出现问题
这是我的代码
<input type="text" ng-change="calculate()" ng-pattern="coordsPattern" ng-model="from" class="input-coords" placeholder="(x|y)">
coordsPattern 在哪里:
$scope.coordsPattern = /^\(?\-?\d{1,3}\|\-?\d{1,3}\)?$/;
输入可以接受
(158|158)
-158|158
(-158|158
.....等等
但是当用户从不同的页面复制和粘贴相同的内容时,取决于浏览器到浏览器,输入看起来像(158|158)
但模式无效,因为复制时有隐藏的选项卡或字符之间的空格。 例如
((tab)(tab)158(tab)|(tab)(tab)-158(tab)
但在输入文本中看起来像(158|-158
所以对于用户来说是一个有效的输入
输入是有效的(因为在calculate()
函数中我清除了空格和制表符中的输入)但对该模式无效,并且 angular 不执行calculate()
函数。
这是一个包含隐藏选项卡的复制和粘贴文本
(-91|-18)
谢谢
编辑
这是字符串的 var_dump
string '(â€-â€91‬‬|â€-â€18‬‬)' (length=33)
它包含特殊字符! 既不是制表符也不是空格!
也许我必须找到不同的解决方案来验证输入...
$scope.coordsPattern = /^\s*?\(?\s*?\-?\s*?\d{1,3}\s*?\|\s*?\-?\s*?\d{1,3}\s*?\)?\s*?$/;
即使插入了空白字符,这也应该与预期的输入匹配。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.