我有一个任务,有点卡住了。
需要将输入字符串与常量中的值匹配,但我正在匹配单个字符。
我的常数是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 中测试并运行。请记住,此实现不会验证输入是否为空或其他防御性检查。你应该自己做。这是区分大小写的结果。
不区分大小写 :
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
一种方法是循环输入并搜索它是否以常量退出
可能的代码
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");
}