我得到一個任務,並且有點卡住了。測試輸入值是否與常量值匹配
需要將輸入字符串與常量中的值匹配,但我匹配單個字符。
我不斷將ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUWXYZ'
我的投入將是,var input = 'ABOZ'
我需要一個測試,以檢查是否在輸入變量的每個字母在字母表中恆存在。
希望我有道理。
乾杯
我得到一個任務,並且有點卡住了。測試輸入值是否與常量值匹配
需要將輸入字符串與常量中的值匹配,但我匹配單個字符。
我不斷將ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUWXYZ'
我的投入將是,var input = 'ABOZ'
我需要一個測試,以檢查是否在輸入變量的每個字母在字母表中恆存在。
希望我有道理。
乾杯
一種方法是循環輸入,如果它退出在不斷
可能的代碼
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");
}
測試,在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的比賽還是假的不匹配函數的例子。 (請注意,這是一個區分大小寫的測試)。
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
這裏是單行回答你的問題:
(ALPHABET.match(new RegExp((input.split('').join('|')), 'g'))).length == input.length
這將返回true
只有在input
所有的人物都出現在ALPHABET
這裏的一個工作演示http://jsfiddle.net/kayen/akL4A/
太棒了!不錯的代碼:> –
我做了一個關於輸入字符串的搜索,但我只能匹配如果字母在常量中的順序,我不能以任何順序匹配,只是拋出一個錯誤。 – TristanN47
發佈您的代碼,我們可以看看 –
@MarkWalters這只是一些測試代碼... ALPHABET =「ABCDEFGHIJKLMNOPQRSTUVWXYZ」 inputTest =「ABBC」 var n = ALPHABET.search(inputTest); alert(n); – TristanN47