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