프로그래밍 언어/HTML,CSS,JS

Javascript에서 문자열에 있는 문자의 발생 횟수 계산

Rateye 2021. 11. 4. 10:40
728x90
반응형
질문 : Javascript의 문자열에서 문자의 발생 수를 계산합니다.

문자열에서 문자의 발생 횟수를 계산해야합니다.

예를 들어 내 문자열에 다음이 포함되어 있다고 가정합니다.

var mainStr = "str1,str2,str3,str4";

, 문자의 수를 3으로 찾고 싶습니다. 그리고 쉼표를 따라 분할 한 후 개별 문자열의 수는 4입니다.

또한 각 문자열 즉, str1 또는 str2 또는 str3 또는 str4가 15자를 초과하지 않아야 함을 확인해야합니다.

답변

이 답변을 업데이트했습니다. 나는 매치를 더 잘 사용한다는 생각을 좋아하지만 속도가 느립니다.

 
console.log(("str1,str2,str3,str4".match(/,/g) || []).length); //logs 3

console.log(("str1,str2,str3,str4".match(new RegExp("str", "g")) || []).length); //logs 4

검색하려는 내용을 미리 알고있는 경우 정규식 리터럴을 사용하고 그렇지 않은 경우 RegExp 생성자를 g 플래그를 인수로 전달할 수 있습니다.

match 는 결과가없는 null || []

2009 년에 제가 만든 원래 답변은 다음과 같습니다. 불필요하게 어레이를 생성하지만 분할을 사용하는 것이 더 빠릅니다 (2014 년 9 월 기준). 나는 양가 적입니다. 정말 속도가 필요하다면 스플릿을 사용할 것이라는 의문의 여지가 없지만 매치를 사용하는 것을 선호합니다.

이전 답변 (2009 년부터) :

쉼표를 찾는 경우 :

(mainStr.split(",").length - 1) //3

str을 찾고 있다면

(mainStr.split("str").length - 1) //4

@Lo의 답변과 내 자신의 어리석은 jsperf 테스트 분할에서 적어도 Chrome에서는 속도가 빨라지지만 다시 추가 배열을 만드는 것은 제정신이 아닌 것 같습니다.

출처 : https://stackoverflow.com/questions/881085/count-the-number-of-occurrences-of-a-character-in-a-string-in-javascript
728x90
반응형