2012-10-15 78 views
0

我得到一個任務,並且有點卡住了。測試輸入值是否與常量值匹配

需要將輸入字符串與常量中的值匹配,但我匹配單個字符。

我不斷將ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUWXYZ'

我的投入將是,var input = 'ABOZ'

我需要一個測試,以檢查是否在輸入變量的每個字母在字母表中恆存在。

希望我有道理。

乾杯

+0

我做了一個關於輸入字符串的搜索,但我只能匹配如果字母在常量中的順序,我不能以任何順序匹配,只是拋出一個錯誤。 – TristanN47

+0

發佈您的代碼,我們可以看看 –

+0

@MarkWalters這只是一些測試代碼... ALPHABET =「ABCDEFGHIJKLMNOPQRSTUVWXYZ」 inputTest =「ABBC」 var n = ALPHABET.search(inputTest); alert(n); – TristanN47

回答

0

一種方法是循環輸入,如果它退出在不斷

可能的代碼

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");  
} 

Demo

0

測試,在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; 
    } 
0

下面是這將返回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 

DEMO

3

這裏是單行回答你的問題:

(ALPHABET.match(new RegExp((input.split('').join('|')), 'g'))).length == input.length

這將返回true只有在input所有的人物都出現在ALPHABET

這裏的一個工作演示http://jsfiddle.net/kayen/akL4A/

+0

太棒了!不錯的代碼:> –