Javascript正则表达式验证

Javascript正则表达式验证,javascript,regex,validation,Javascript,Regex,Validation,帮助,我需要一个regexp验证来检查字母数字(a-Z或a-Z和0-9)和一些特殊字符(@$%&),这是可选的,但长度必须为8到15个字符 (?=.*[A-Za-z])(?=.*[0-9]){8,15} 比如说, training = false training1 = true @training1 = true @training = false tr@ining1 = true (Position doesn't matter) 我有这个,但它只验证长度为8到15个字符的字母数字 (?

帮助,我需要一个regexp验证来检查字母数字(a-Z或a-Z和0-9)和一些特殊字符(@$%&),这是可选的,但长度必须为8到15个字符

(?=.*[A-Za-z])(?=.*[0-9]){8,15}
比如说,

training = false
training1 = true
@training1 = true
@training = false
tr@ining1 = true (Position doesn't matter)
我有这个,但它只验证长度为8到15个字符的字母数字

(?=.*[A-Za-z])(?=.*[0-9]){8,15}

如何包括对特定字符的可选检查?

好吧,我想您可以试试:

/^(?![a-z]+$)(?![a-z@#$%&]+$)(?!\d+$)(?![\d@#$%&]+$)[a-z\d@#$%&]{8,15}$/i
匹配结果:

training = false
training1 = true
@training1 = true
@training = false
tr@ining1 = true  
12345678 = false
12345678a = true
@12345678 = false

我试过12345678,它给出的错误是正确的。然而,我尝试12345678a应该给我一个真实的回应。但我得到一个错误的密码,像这样?var a=newregexp('^(?)[a-z]+$)(?![a-z@$%&]+$)(?!\d+$)(?![\d@$%&]+$)[a-z\d@$%&]{8,15}$)@user2435677这样的代码:var a=/^(?[a-z]+$)(?![a-z@$%&]+$)(?!\d+$)(?![\d@$%&]+$)[a-z\d@$%&]{8,15}$/i
training
为8个字符,
@training
为9个字符。为什么这些会失败?我的要求是它必须是字母数字@培训不是字母数字的。特殊字符在这种情况下是可选的,但只有那些特定的字符。@user2435677是/^(?[a-z]+$)(?![a-z@#$%&]+$)(?!\d+$)(?![\d@#$%&]+$)[a-z\d@$%&{8,15}$/i您想要什么?总长度必须为8到15个字符,包括这些特殊字符。