我試圖創建一個美國的電話號碼驗證###-###-####
,採用NG-模式和電話面膜指令..Angularjs驗證不工作的複製粘貼
如果我做簡單的複製粘貼1234567890
,它工作正常,但和
當複製粘貼一個有效的電話號碼,並刪除它, 並再次複製粘貼然後給出錯誤..
這裏是工作的jsfiddle:https://jsfiddle.net/9xrx87mw/1/
我試圖創建一個美國的電話號碼驗證###-###-####
,採用NG-模式和電話面膜指令..Angularjs驗證不工作的複製粘貼
如果我做簡單的複製粘貼1234567890
,它工作正常,但和
當複製粘貼一個有效的電話號碼,並刪除它, 並再次複製粘貼然後給出錯誤..
這裏是工作的jsfiddle:https://jsfiddle.net/9xrx87mw/1/
在JS代碼中,您從數字中刪除連字符,並且模式要求連字符存在。讓它們可選並使用
ng-pattern="/^[0-9]{3}-?[0-9]{3}-?[0-9]{4,5}$/"
^ ^
查看updated demo。
顯示的值將在稍後重新生成,因此允許匹配1或0個量化子模式的量化符將按預期工作。
首先感謝以上..但是,當我輸入有效的電話號碼並點擊框外(模糊事件),並再次嘗試輸入一些額外的(字母或無數字字母)它給錯誤,你能提出一個解決方案。 –
對不起,我試圖檢查該部分,但它似乎與字符串如何以及何時傳遞給正則表達式有關,並且已經使問題太寬泛。請記住,一旦你刪除了連字符,它們在模式中必須是可選的。 –
您刪除連字符,並且該模式不支持沒有它們的值。使它們成爲可選項,['ng-pattern =「/^[0-9] {3} - ?[0-9] {3} - ?[0-9] {4,5} $ /」'](https ://jsfiddle.net/9xrx87mw/2/) –
感謝@WiktorStribiżew,它按預期工作 –