課題があり、少し行き詰まっています。
入力文字列を定数の値に一致させる必要がありますが、個々の文字を一致させています。
私の定数はALPHABET = 'ABCDEFGHIJKLMNOPQRSTUWXYZ'
私の入力は、var input = 'ABOZ'
入力変数の各文字が ALPHABET 定数に存在するかどうかを確認するテストが必要です。
私が理にかなっていることを願っています。
乾杯
課題があり、少し行き詰まっています。
入力文字列を定数の値に一致させる必要がありますが、個々の文字を一致させています。
私の定数はALPHABET = 'ABCDEFGHIJKLMNOPQRSTUWXYZ'
私の入力は、var input = 'ABOZ'
入力変数の各文字が ALPHABET 定数に存在するかどうかを確認するテストが必要です。
私が理にかなっていることを願っています。
乾杯
これがあなたの質問に対する一行の答えです:
(ALPHABET.match(new RegExp((input.split('').join('|')), 'g'))).length == input.length
true
のすべての文字input
がに存在する場合にのみ返されますALPHABET
これが実用的なデモですhttp://jsfiddle.net/kayen/akL4A/
Firefox 16 でテスト済みで動作します。この実装では、入力が null かどうか、またはその他の防御チェックが検証されないことに注意してください。自分でやるべきです。これは大文字と小文字を区別する結果です。
大文字小文字を区別しません :
function validInput(input) {
var ALPHABET = "ABCDEFGHIJKLMNOPQRSTUWXYZ";
for (var i = 0; i < input.length; i++) {
var charAtI = input.charAt(i);
var indexOfCharAtI = ALPHABET.indexOf(charAtI);
if (indexOfCharAtI < 0) {
return false;
}
}
return true;
}
大文字小文字を区別しません :
function validInput(input) {
var ALPHABET = "ABCDEFGHIJKLMNOPQRSTUWXYZ";
for (var i = 0; i < input.length; i++) {
var charAtI = input.charAt(i);
charAtI = charAtI.toUpperCase();
var indexOfCharAtI = ALPHABET.indexOf(charAtI);
if (indexOfCharAtI < 0) {
return false;
}
}
return true;
}
一致の場合は true、不一致の場合は false を返す関数の例を次に示します。(これは大文字と小文字を区別するテストであることに注意してください)。
var ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var input = 'ABOZ';
function testStr(str, constant){
var matchFlag = true;
var strSplit = str.split("");
for(var i=0; i<strSplit.length;i++){
if(constant.indexOf(strSplit[i]) == -1){
matchFlag = false;
}
}
return matchFlag;
}
alert(testStr(input, ALPHABET)); //TRUE
1 つの方法は、入力をループして、定数に存在するかどうかを検索することです。
可能なコード
var ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUWXYZ';
var input = 'ABOZ'
var count = 0;
for(x in input) {
if(ALPHABET.indexOf(input[x])>-1){
count++;
continue;
}
else{
break;
}
}
if(count==input.length) {
alert("true");
}