如何返回包含特定匹配的字符串?

时间:2015-08-10 20:02:34

标签: javascript

我正在尝试返回一个完全匹配的字符串:" 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;时才会返回。

3 个答案:

答案 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;

这是一个演示:

&#13;
&#13;
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;
&#13;
&#13;