私はユーザー登録ページを作成していますが、配列に一致しないcharは必要ありません。配列に文字列が含まれていない場合
function create(){
var allowed = [
"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z",
"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z",
"1","2","3","4","5","6","7","8","9","0","_","-"];
var username = $("#username").val();
if (username == ""){
document.getElementById("usernameerror").style.color = "red";
document.getElementById("usernameerror").innerHTML = " Username cannot be blank.";
}else{
if (username.indexOf(allowed) != -1){
document.getElementById("usernameerror").style.color = "red";
document.getElementById("usernameerror").innerHTML = " No symbols.";
}else{
document.getElementById("usernameerror").style.color = "blue";
document.getElementById("usernameerror").innerHTML = " ✔";
}
}
}
私はそれは単純なもの..(ないサブ文字列)
Checkout JS [正規表現](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions)。 –
おそらく、正規表現を使う方が簡単ですが、配列で実際にやりたいのであれば、文字列中の各文字をループし、それらがすべて配列内にあるかどうかを確認する必要があります。あなたがES6を使っているなら、 'username.every(c => allowed.indexOf(c)> -1)'のようなものです。 –
許可された文字列を含む文字列を使用できます。 –