Javascript js-检查字符串是否不存在';不包含给定字符

Javascript js-检查字符串是否不存在';不包含给定字符,javascript,string,validation,Javascript,String,Validation,我需要验证不能包含以下字符的用户名: var restricted = [' ','`','~','@','#','$','%','^','&','*','(',')','+','=','|','\\',"'",'"',']','[','{','}',':',';','<',',','>','?','/',0,1,2,3,4,5,6,7,8,9]; var restricted=[''''、'~'、'@'、'#'、'$'、'%'、'^'、'&'、'*'、'('、')、'+'

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

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

如何处理此问题?

如果您希望只允许字母字符。一个简单的正则表达式就可以了

/^[a-zA-Z]+$/.test(usernameString);
如果不允许空匹配,请将
*
更改为
+

参考资料: ,

/
只是分隔符,它表示正则表达式的开始和结束。现在您可以在其上使用它。

var restricted=[''''''、'~'、'@'、'#'、'$'、'%'、'^'、'、'、'('、')、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、;
var s=“astring”;
var=false;
对于(变量i=0,上限=restricted.length;i<天花;i++){
如果(s.indexOf(受限[i])!=-1){
包含=真;
打破
}
}
警报(“限制字符为“+(包含?”:“未”)+“找到”);

如果它是一组特定的字符(即reg exp解决方案不合适),则可能必须循环遍历数组并测试受限字符串中的每个元素。 注意,如果您关心速度,它会很快,因为您只是比较值

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;
}
var restricted=[''''、'~'、'@'、'#'、'$'、'%'、'^'、'&'、'*'、'('、')、'+'、'='、'|'、'\'、'''、''、']、'['、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'/'、0,1,2,3,4,5,6,7,8,9];
功能检查受限(sTest){
//如果字符串有效,则返回true;如果找到任何受限字符,则返回false
var bValid true
for(变量i=0;i:restricted.length;i++)
{
if(sTest.indexOf(restricted[i])>-1{bValid=false}
}
返回bValid;
}

请注意,我只是在没有验证的情况下输入了这个,但对我来说似乎没问题

我担心你的方法在utf8字符串的情况下不起作用。无论如何,谢谢。你可能想展示如何合并最小长度的检查(密码不应该真正有最大长度,我认为除了实用性)。
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");
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;
}