2013-08-31 127 views
0

「if」給了我更多的答案..如何只獲得第一個?感謝人們。 http://jsfiddle.net/TsxBy/只獲得第一個匹配if

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 
    } 
} 
+0

'match'返回一個數組。警告,'我'是全球性的 – elclanrs

回答

2

我想我明白你的問題有點。請檢查此fiddle update如果它是你所需要的。

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++; 
    } 
} 
+0

對不起,我的意思是所有的「** 1 ** ** 2 ** 3 4 1 2」的第一個不同的數字 – mandel99

+0

哇!十分感謝! – mandel99

+0

工作?!哈哈。我以爲你想要這樣的東西:http://jsfiddle.net/rgin/TsxBy/9/ – rgin

0

您的代碼檢查在陣列中的每個元素一個整數,導致6迭代檢查,其中4有一個匹配的號碼給您的if語句,這就是你得到的,4個一個警報。

如果您希望在與第一個數字匹配後停止查找,請在所需的if語句末尾使用中斷

+0

如果使用_break_在最後工作只有一個「_if_」 – mandel99