簡體   English   中英

js-檢查字符串是否不包含給定字符

[英]js - check if string doesn't contain given characters

我需要驗證不能包含以下字符的用戶名:

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

我該如何解決這個問題?

如果您只希望使用字母字符。 一個簡單的正則表達式即可。

/^[a-zA-Z]+$/.test(usernameString);
/^[a-zA-Z]*$/

如果您不想允許空匹配,請將*更改為+

參考文獻:

字符類( [...]錨( ^$重復( +*

/只是定界符,它表示正則表達式的開始和結束。 現在,您可以在其上使用修飾符

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");

如果是一組特定的字符(即,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;
}

請注意,我只是在沒有驗證的情況下輸入了它,但對我來說似乎沒問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM