2015-06-15 45 views
1

我想知道是否有一種簡單的方法可以在表單文本字段上設置此驗證,而無需創建自定義指示。驗證A-Z0-9的最大長度爲10,但允許用戶輸入空格(但最多跳過空格)

我需要驗證{minlength: 2, maxlength: 10},用戶可以輸入[A-Z0-9\s]的任意組合,但只有數量A-Z0-9將趨向最小和最大計數。

這可能嗎?

我在想也許使用ng-pattern和一些神奇的正則表達式可能會把它關閉。只需要一個錯誤消息觸發,如果ng-pattern未能通過匹配。

回答

2

正則表達式^\s*(?:[A-Z0-9]\s*){2,10}$將給你所要求的。它打破瞭如:

^\s*       - start with 0 or more white space characters 
     [A-Z0-9]     - then one of A-Z or 0-9 
       \s*    - then any number of additional 
            white space chars (including 0) 
    (?:   ){2,10}  - repeat all that 2-10 times 
         \s*$ - and allow trailing white space 

編輯:更新使用非捕獲組(我不知道ngPattern支持)。

+0

模式實際上需要錨定嗎?我認爲這是隱含的。 – Bergi

+0

@Bergi,剛纔的一個快速測試顯示是的,他們這樣做。 – DocMax

+0

真棒,謝謝!你對於正則表達式非常好,你是如何學習的?似乎沒有領先的'\ s *'也可以工作(也許是因爲角自動修剪空格)。有什麼方法可以改變這個以允許任何字符,包括標點符號和空格,但只計算字母和數字? – ngDeveloper

相關問題