Статьи

jQuery String в подсчете строк

Как подсчитать количество вхождений строки (подмножество символов / регулярное выражение / подстановочные знаки) внутри другой строки.

Метод 1 — Использование соответствия регулярного выражения

var emails = '[email protected],[email protected],[email protected]', count = emails.match(/@/igm).length; console.log(count); //output: 3 

Слово с предупреждением о том, что использование функции .length в регулярном выражении, у которого нет совпадений, приведет к ошибке NULL .

TypeErroremailsmatch

 var emails = '', count = emails.match(/@/igm).length; console.log(count); //output: TypeError: emails.match(/@/gim) is null 

Если вы проверили, что счетчик не равен нулю, прежде чем присваивать значение, это не будет ошибкой и даст вам 0 для отсутствия счета.

Рабочая версия (нулевое доказательство):

 var emails = '[email protected],[email protected],[email protected]', regex = /@/igm, count = emails.match(regex), count = (count) ? count.length : 0; console.log(count); //output: 3 

Способ 2 — Использование функции indexOf () Pos

 function occurrences(string, substring){ var n=0; var pos=0; while(true){ pos=string.indexOf(substring,pos); if(pos!=-1){ n++; pos+=substring.length;} else{break;} } return(n); } count= occurrences(emails,'@'); console.log(count); //output: 3 в function occurrences(string, substring){ var n=0; var pos=0; while(true){ pos=string.indexOf(substring,pos); if(pos!=-1){ n++; pos+=substring.length;} else{break;} } return(n); } count= occurrences(emails,'@'); console.log(count); //output: 3