我看起来很高低,现在还不知道如何做到这一点......我的情景:
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()似乎与两者相匹配,但不应该。我希望它匹配确切的字符串。任何人都知道我是怎么做到的?
答案 0 :(得分:2)
答案 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