数组中的JavaScript中的全字匹配

时间:2013-07-04 16:00:17

标签: javascript jquery

我看起来很高低,现在还不知道如何做到这一点......我的情景:

 var strArray = ['Email Address'];

 function searchStringInArray(str, strArray) {
     for (var j = 0; j < strArray.length; j++) {
        if (strArray[j].match(str)) return j;
     }
     return -1;
 }

 var match = searchStringInArray('Email', strArray);

电子邮件不等于电子邮件地址......但是.match()似乎与两者相匹配,但不应该。我希望它匹配确切的字符串。任何人都知道我是怎么做到的?

3 个答案:

答案 0 :(得分:2)

您已经尝试了同样的事情.indexOf()

因此,为什么不使用:

而不是循环
 var match = strArray.indexOf('Email');

答案 1 :(得分:1)

String.match将您的参数“电子邮件”视为正则表达式。只需使用==代替:

      if (strArray[j] == str) return j;

来自Mozilla Development Network page on String.match

  

如果传递了非RegExp对象obj,则将其隐式转换为a   使用新的RegExp(obj)

进行RegExp

答案 2 :(得分:0)

或者使用RegExp

使用^$

var str = "Email";
new RegExp(str).test("Email address")

结果:是真的

为此:

var str = "Email";
new RegExp("^" + str + "$").test("Email address")

结果:false