我正在尝试返回一个完全匹配的字符串:" Item1_20"。我有1作为Item_no和20作为item_size。
var str = ["Item1_20","Item2_20","Item3_30"....];
var Item_no = 1;
var Item_size = 20;
for (var i=0; i<str.length; i++)
{
var match = str.match(/Item_no + '_' + Item_size/g);
}
所以匹配只有在完全匹配&#34; Item1_20&#34;时才会返回。
答案 0 :(得分:1)
怎么样:
var match = (str[i] == "Item"+Item_no+"_"+Item_size);
如果您想要完全匹配,则无需使用正则表达式。小心str是数组,str [i]是字符串
答案 1 :(得分:1)
你应该使用indexOf
str.indexOf(Item_no + '_' + Item_size)
所以如果你得到-1
,就没有匹配。
如果要使用正则表达式,那么就不是如何构建正则表达式。您可以使用new RegExp(Item_no + '_' + Item_size,"g")
进行操作,并且您的循环不会比较每个索引。
答案 2 :(得分:0)
Array.indexOf(string)
会返回数组string
的索引,如果找不到,则返回-1
如果在index > -1
中找到string
,则Array
会返回true。
var match = str.indexOf('Item' + Item_no + '_' + Item_size) > -1;
这是一个演示:
var str = ["Item1_20","Item2_20","Item3_30"];
var Item_no = 1;
var Item_size = 20;
var item_index = str.indexOf('Item' + Item_no + '_' + Item_size);
var match = item_index > -1;
alert( 'Found: ' + item_index + '\nIndex: ' + match );
&#13;