分两步进行验证不行吗?var s = 'csdna'; var ar = ['c', 'cs', 'csd', 'csdn']; //不允许的字符集合function va(s, ar) { var patt = /^[a-zA-Z]+[\w]*$/; var vaFlag = true; if (patt.test(s)) { for (var i = 0; i < ar.length; i ++) { if (s == ar[i]) vaFlag = false; } } else vaFlag = false; return vaFlag; }alert(va(s, ar));
稍微改进一下。 var s = 'C';function va(s) { var patt = /^[a-zA-Z]+[\w]*$/; var vaFlag = true; if (patt.test(s)) { if (/^(c|cs|csd|csdn)$/i.test(s)) vaFlag = false; //如果不需要忽略大小写,去掉i标志 } else vaFlag = false; return vaFlag; }alert(va(s));
var ar = ['c', 'cs', 'csd', 'csdn']; //不允许的字符集合function va(s, ar) {
var patt = /^[a-zA-Z]+[\w]*$/;
var vaFlag = true;
if (patt.test(s)) {
for (var i = 0; i < ar.length; i ++) {
if (s == ar[i]) vaFlag = false;
}
}
else vaFlag = false;
return vaFlag;
}alert(va(s, ar));
var s = 'C';function va(s) {
var patt = /^[a-zA-Z]+[\w]*$/;
var vaFlag = true;
if (patt.test(s)) {
if (/^(c|cs|csd|csdn)$/i.test(s)) vaFlag = false; //如果不需要忽略大小写,去掉i标志
}
else vaFlag = false;
return vaFlag;
}alert(va(s));
/^[a-zA-Z]+[\w]*$/.test(s)&&!/^(c|cs|csd|csdn)$/i.test(s)
"^(([a-zA-Z&&[^c]]\\w*)|(c[\\w&&[^s]]\\w*)|(cs[\\w&&[^d]]\\w*)|(csd[\\w&&[^n]]\\w*)|(csdn\\w+))$"这一大串,相比7楼的解法太惭愧了,看来还是没理解正则表达式的含义啊