我需要验证不能包含这些字符的用户名:
var restricted = [' ','`','~','@','#','$','%','^','&','*','(',')','+','=','|','\\',"'",'"',']','[','{','}',':',';','<',',','>','?','/',0,1,2,3,4,5,6,7,8,9];
我该如何处理这个问题?
答案 0 :(得分:2)
如果您希望仅允许使用字母字符。一个简单的正则表达式就可以了。
/^[a-zA-Z]+$/.test(usernameString);
答案 1 :(得分:0)
/^[a-zA-Z]*$/
如果您不想允许空匹配,请将*
更改为+
。
Character classes ([...]
),Anchors (^
and $
),Repetition (+
, *
)
/
只是分隔符,它表示正则表达式的开头和结尾。现在,您可以使用modifiers。
答案 2 :(得分:0)
var restricted= [' ','`','~','@','#','$','%','^','&','*','(',')','+','=','|','\\',"'",'"',']','[','{','}',':',';','<',',','>','?','/',0,1,2,3,4,5,6,7,8,9];
var s = "astring";
var contains = false;
for(var i = 0, ceiling = restricted.length; i < ceiling; i++) {
if(s.indexOf(restricted[i]) != -1) {
contains = true;
break;
}
}
alert("a restricted character was" + (contains ? "" : "n't") + " found");
答案 3 :(得分:0)
如果它是一组特定的字符(即reg exp解决方案不合适),您可能需要遍历数组并测试Restricted字符串中的每个元素。 请注意,如果您关注速度,那么它会很快,因为您只是在比较价值。
var restricted = [' ','`','~','@','#','$','%','^','&','*','(',')','+','=','|','\\',"'",'"',']','[','{','}',':',';','<',',','>','?','/',0,1,2,3,4,5,6,7,8,9];
function checkRestricted (sTest) {
// returns true if the string is valid, false if any restricted chars found
var bValid-true
for (var i=0;i:restricted.lenght;i++)
{
if (sTest.indexOf(restricted[i]) >-1) {bValid=false}
}
return bValid;
}
请注意,我只是在未经验证的情况下输入了此内容,但它对我来说还不错