0

“如果”给了我更多的答案..如何只得到第一?谢谢人们。 http://jsfiddle.net/TsxBy/

var content = "var=xyz-id=2,var=abc-id=1,var=bcd-id=7,var=abc-id=1,var=hij-id=4,var=xyz-id=2";
content = content.split(',');
for (i = 0; i < content.length; i++) {
    var temp = content[i].match(/\d/);
    if (temp == '1') {
        alert('match 1'); // how to response only first "matched"?
    }
    if (temp == '2') {
        alert('match 2'); // same here
    }
}
4

2 回答 2

2

我想我有点理解你的问题。如果您需要,请检查此小提琴更新。

var content = "var=xyz-id=2,var=abc-id=1,var=bcd-id=7,var=abc-id=1,var=hij-id=4,var=xyz-id=2";

content = content.split(',');
var ctr1 = 0, ctr2 = 0;

for (i = 0; i < content.length; i++) { 

    var temp = content[i].match(/\d/);
    console.log(temp[0]);

    if (temp[0] == '1' && ctr1 == 0) {
        alert('match 1');
        ctr1++;
    }
    if (temp[0] == '2' && ctr2 == 0) {
        alert('match 2');
        ctr2++;
    } 
}
于 2013-08-31T01:24:49.107 回答
0

您的代码正在检查数组的每个元素中的单个整数,导致 6 次迭代检查,其中 4 次与您的一个 if 语句有匹配的数字,这就是您得到的,4 个警报。

如果您希望它在匹配第一个数字后停止查找,请在所需 if 语句的末尾使用中断。

于 2013-08-31T01:25:00.250 回答