簡體   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