で正規表現を比較し、インデックス。私は二つの配列を持つJavascript配列
validParameters = ["valid", "alsoValid", /this|that/, /\d+(\.)?\d*/];
と使用:
var ok2go = true;
// For each entered command...
for (var i = 0; i < commands.length; i++) {
// Check to see that it is a valid parameter
if (validParameters.indexOf(commands[i]) === -1) {
// If not, an invalid command was entered.
ok2go = false;
break;
// If valid, remove from list of valid parameters so as to prevent duplicates.
} else {
validParameters.splice(validParameters.indexOf(commands[i]), 1);
}
return ok2go;
}
if (ok2go) {
// do stuff if all the commands are valid
} else {
alert("Invalid command");
}
は、それは私がそれを望むように動作します
私は私がvalidParameters
を変更した場合、このように正規表現を比較する方法がわかりません正規表現にする必要があるそれらの値には当てはまりません。これを解決する方法はありますか?
テストケース:
enteredCommands = ["valid", "this", 1.1, 3];
// Expected Result: ok2go = false because 2 digits were entered
enteredCommands = ["valid", "alsoValid", "x"];
// Expected Result: ok2go = false because x was entered
enteredCommands = ["valid", "alsoValid", 1];
// Expected Result: ok2go = true because no invalid commands were found so we can continue on with the rest of the code
希望の結果を追加してくださいをしたいかもしれません。 –
あなたは何を求めているのか、何を達成したいのか明確ではない – charlietfl
希望の結果は、 'enteredCommands'がすべて' validParameters'に1回だけ存在することを検証することです。それゆえ、 '' enteredCommands'の全てをループしたいのですが、 'validParameters'に存在する場合は' validParameters'から削除してください。 – mariahm24