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