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
반응형
'프로그래밍 언어 > HTML,CSS,JS' 카테고리의 다른 글
React JSX : <select> 옵션에서 "selected"를 가져오기. (0) | 2021.11.05 |
---|---|
AngularJS가 select에 빈 옵션을 포함하는 이유 (0) | 2021.11.04 |
JavaScript에서 문자열 앞 뒤 공백 제거하기 (0) | 2021.11.04 |
ReactJS- "setState"가 호출 될 때마다 render가 호출되는 이유 (0) | 2021.11.04 |
JavaScript 숫자 자릿수에 맟춰서 앞에 0 붙이기 (0) | 2021.11.03 |