2012-10-15 42 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

太棒了!不错的代码:> –