繁体   English   中英

正则表达式 ng-pattern angularjs

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM