반응형
공백으로 문자열을 분할하고 정규 표현식을 사용하여 선행 및 후행 공백을 단어 배열로 무시하는 방법은 무엇입니까?
일반적으로 JavaScript에서 다음 코드를 사용하여 문자열을 공백으로 분할합니다.
"The quick brown fox jumps over the lazy dog.".split(/\s+/);
// ["The", "quick", "brown", "fox", "jumps", "over", "the", "lazy", "dog."]
물론 이것은 단어 사이에 여러 개의 공백 문자가있는 경우에도 작동합니다.
"The quick brown fox jumps over the lazy dog.".split(/\s+/);
// ["The", "quick", "brown", "fox", "jumps", "over", "the", "lazy", "dog."]
문제는 선행 또는 후행 공백이있는 문자열이있는 경우 결과 문자열 배열이 배열의 시작 및 / 또는 끝에 빈 문자를 포함 할 때입니다.
" The quick brown fox jumps over the lazy dog. ".split(/\s+/);
// ["", "The", "quick", "brown", "fox", "jumps", "over", "the", "lazy", "dog.", ""]
이러한 빈 문자를 제거하는 것은 사소한 작업이지만 가능하다면 정규 표현식 내에서 처리하고 싶습니다. 이 목표를 달성하기 위해 내가 사용할 수있는 정규식을 아는 사람이 있습니까?
공백이 아닌 비트에 더 관심이있는 경우 공백으로 분할하는 대신 공백이 아닌 비트를 일치시킬 수 있습니다.
" The quick brown fox jumps over the lazy dog. ".match(/\S+/g);
다음이 반환됩니다 null
.
" ".match(/\S+/g)
따라서 배우기 가장 좋은 패턴은 다음과 같습니다.
str.match(/\S+/g) || []
" The quick brown fox jumps over the lazy dog. ".trim().split(/\s+/);
공백 시퀀스에서 분할하는 대신 공백이 아닌 시퀀스를 일치시킬 수 있습니다.
" The quick brown fox jumps over the lazy dog. ".match(/\S+/g)
다른 코드처럼 우아하지는 않지만 이해하기 매우 쉽습니다.
countWords(valOf)
{
newArr[];
let str = valOf;
let arr = str.split(" ");
for (let index = 0; index < arr.length; index++)
{
const element = arr[index];
if(element)
{
this.newArr.push(element);
}
}
this.NumberOfWords = this.newArr.length;
return this.NumberOfWords;
}
반응형
'Development Tip' 카테고리의 다른 글
Google Maps API v3 정보창 닫기 이벤트 / 콜백? (0) | 2020.11.03 |
---|---|
WPF에서 타이머를 어떻게 생성합니까? (0) | 2020.11.03 |
슬러그에 의한 WordPress 쿼리 단일 게시물 (0) | 2020.11.03 |
자바 스크립트 확장 클래스 (0) | 2020.11.03 |
"IIS Express 웹 서버를 시작할 수 없습니다." (0) | 2020.11.03 |