![](/img/trans.png)
[英]Regex, string is a combination of whitelisted characters and doesn't contain any in blacklist
[英]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.