我試圖讓JavaScript的用戶名驗證的正則表達式Javascript正則表達式「無效的組」?
' ^(?=.{4,16}$)(?![_.])(?!.*[_.]{2})[a-zA-Z0-9._]+(?<![_.])$
' └─────┬────┘└───┬──┘└─────┬─────┘└─────┬─────┘ └───┬───┘
' │ │ │ │ no _ or . at the end
' │ │ │ │
' │ │ │ allowed characters
' │ │ │
' │ │ no __ or _. or ._ or .. inside
' │ │
' │ no _ or . at the beginning
' │
' username is 4-16 characters long
當我使用它在鈦的Appcelerator我得到這個錯誤
[ERROR] : Error generating AST for "***register.js"
[ERROR] : Invalid regular expression: /^(?=.{4,16}$)(?![_.])(?!.*[_.]{2})[a-zA-Z0-9._]+(?<![_.])$/: Invalid group
[ERROR] : Alloy compiler failed
我的代碼:
var regex = /^(?=.{4,16}$)(?![_.])(?!.*[_.]{2})[a-zA-Z0-9._]+(?<![_.])$/;
if (!regex.test(e.value))
{
inputs.Username.borderColor = 'red';
inputs.Username.backgroundColor = '#edcaca';
return false;
}
任何想法爲什麼它給錯誤無效組?
刪除了我的。 。 。你已經有了一個好的解決方案。 :) – talemyn
解決方案+問題解答,最佳答案,,,,謝謝:)你瘋了我的日子 – Jack
@NinjaDevelopers我很高興它幫助你:-)。通常可以像上面那樣避免逆序倒序。 – andlrc