2013-08-31 2 views
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 
    } 
} 
+0

'match' возвращает массив. Предупреждение, 'i' является глобальным – 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

WoW! Большое спасибо! – mandel99

+0

Это сработало ?! Ха-ха. Я думал, что вам нужно что-то вроде этого: http://jsfiddle.net/rgin/TsxBy/9/ – rgin

0

Ваш код проверка для одного целого в каждом элементе массива, в результате 6 Итерированных проверок, 4 из которых имеет ряд соответствия одному из ваших если заявлений, что является то, что вы получаете, 4 предупреждений ,

Если вы хотите, чтобы он остановил поиск по совпадению с первым номером, используйте перерыв в конце желаемого оператора if.

+0

, если использовать _break_ в конце, работая только с одним «_if_» – mandel99

Смежные вопросы