js - 检查字符串是否包含给定的字符

时间:2014-04-30 09:45:08

标签: javascript string validation

我需要验证不能包含这些字符的用户名:

var restricted = [' ','`','~','@','#','$','%','^','&','*','(',')','+','=','|','\\',"'",'"',']','[','{','}',':',';','<',',','>','?','/',0,1,2,3,4,5,6,7,8,9];

我该如何处理这个问题?

4 个答案:

答案 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;
}

请注意,我只是在未经验证的情况下输入了此内容,但它对我来说还不错