2015-04-16 72 views
-1
  • 用戶名只能包含字母(a-z)至25個字符。
  • 應刪除第一個和最後一個空格。
  • 的用戶名可以多於1個字,而不是多少個字的限制名稱計數

所以我現在使用的正則表達式幾乎是有效的,但有3個字以上的ISN」用戶名t有效。這應該是有效的。JS - 正則表達式的名稱

有效的名稱可以是:

  1. 丹尼斯
  2. 丹尼斯是
  3. 丹尼斯酷
  4. 丹尼斯是最酷的
  5. 等多達25個字符,因爲這是最大長度。

這是當前正則表達式我使用:

var pattern = /^[a-z\u00C0-\u01FF]+([\s\.\-\']?[a-z\u00C0-\u01FF]+)? $/i; 
    if (pattern.exec(uname) == null) 
    { 
     alert('Invalid name'); 
     return false; 
    } 

因此,如何調整正則表達式,使其成爲多個詞與25個字符的最大長度工作,然後2?

+0

如果它只能是字母字符和空格,爲什麼你有這個:'[\ s \。\ - \']'? – Sam

+0

這是我會用的:'^ \ s *((?:[a-z]){1,25}?)\ s * $' – Sam

+0

對不起我的錯誤。並且你的解決方案很好,除了一個只有空格的名字是允許的,它不應該是 – GeenId

回答

0

您的正則表達式指定它需要一組字符,然後可選地包含一個空格和另一組字符。因此,你的兩個字的限制。

如果將([\s\.\-\']?[a-z\u00C0-\u01FF]+)?更改爲([\s\.\-\']?[a-z\u00C0-\u01FF]+)*,它將允許零個或多個其他字,而不是零個或一個。

+0

感謝您的解釋和答案,這完美的作品! – GeenId