자바스크립트에서 문자열 내부의 공백 제거
javascript trim에 대한 이 질문을 읽었는데, regex 답변이 있습니다.
그럼 트림이 헬로와 월드 사이의 내부 공간을 없애줄 것으로 기대합니다.
function myFunction() {
alert("Hello World ".trim());
}
편집됨
내가 그걸 기대한 이유는?
말도 안 돼요!트림이 내부 공간을 제거하는 것은 아닙니다! 앞과 뒤의 공간만 제거하는 것입니다. 트림은 그렇게 작동합니다. 매우 잘못된 질문입니다. 죄송합니다.
공백 문자 제거용
"hello world".replace(/\s/g, "");
모든 우주 공간은 아래 댓글에 있는 로켓의 제안을 사용하세요!
사용가능
"Hello World ".replace(/\s+/g, '');
trim()
문자열의 후행 공백만 제거합니다(체인의 첫 번째와 마지막).이 경우 하나 이상의 공백을 동시에 제거할 수 있으므로 이 regExp가 더 빠릅니다.
대체 빈 문자열을 '$'로 변경하면 차이가 훨씬 명확해집니다.
var string= ' Q W E R TY ';
console.log(string.replace(/\s/g, '$')); // $$Q$$W$E$$$R$TY$
console.log(string.replace(/\s+/g, '#')); // #Q#W#E#R#TY#
성능비교 -/\s+/g
더 빠릅니다.여기 참조: http://jsperf.com/s-vs-s
갱신하다
다음을 사용할 수도 있습니다.
console.log(string.replaceAll(/\s/, '#')); // #Q#W#E#R#TY#
공백만 교체하려면 이렇게 하는 것이 가장 좋습니다.
let str = " H e l l o 1 5 9 ";
let onlyCharacters = str.replaceAll(" ", "");
// onlyCharacters = Hello159
사용했습니다.str.replace(/\s/g, "");
많은 양이 있지만 모든 브라우저에서 작동하지 않습니다. 예를 들어 안드로이드에서는 덕덕고에서 작동하지 않으며 안드로이드 웹뷰에서도 작동하지 않습니다.
아마도 당신이 수락된 답변에서 해결책을 실행하는 것을 잊었기 때문일 것입니다.그것이 바로 우리가trim()
일하다.
갱신하다
이 답변은 이전 브라우저에만 적용됩니다.최신 브라우저는 다음을 지원합니다.trim()
토속적으로
Strings replace 메서드를 정규식과 함께 사용할 수 있습니다.
"Hello World ".replace(/ /g, "");
replace() 메서드는 대체로 대체된 패턴의 일부 또는 전부 일치하는 새 문자열을 반환합니다.패턴은 문자열 또는 RegExp일 수 있습니다.
/ / - 정규식 일치공간
g - 글로벌 플래그. 첫 번째 매치 후 중지하지 않고 모든 매치 찾기
const str = "H e l l o World! ".replace(/ /g, "");
document.getElementById("greeting").innerText = str;
<p id="greeting"><p>
재귀적 솔루션을 사용할 수 있습니다.
function removeWhitespaces(string, i = 0, res = "") {
if (i >= string.length)
return res
else
if (string[i] == " ")
return removeWhitespaces(string, i + 1, res)
else
return removeWhitespaces(string, i + 1, res += string[i])
}
console.log(removeWhitespaces(" Hello World, how is it going ? "))
이것에 접근하는 방법에 대한 정확한 답은 정확한 의도에 달려 있습니다.공백 문자를 모두 제거하려면 다음을 사용해야 합니다.
's t r i n g'.replace(\s+\g, '')
특정 유형의 공백(예: 얇은 공간 또는 머리카락 공간)만 제거하려는 경우 다음과 같이 명시적으로 나열해야 합니다.
's t r i n g'.replace(\ |\t \g, '')
그러나 일반 공간만 제거하고자 하는 경우 성능 측면에서 가장 좋은 해결책은 다음과 같습니다.
's t r i n g'.replace(' ', '')
다음은 결과를 비교한 벤치마크입니다.정규 표현 솔루션 간에 약간의 성능 차이가 있지만 이는 다소 중요하지 않습니다.그러나 문자열 기반 대체는 링크된 벤치마크에서 정규 예제보다 ops/s 크기가 약 10배 더 높습니다.(https://jsbench.me/drlfuphfhk/1)
언급URL : https://stackoverflow.com/questions/10800355/remove-whitespaces-inside-a-string-in-javascript
'itsource' 카테고리의 다른 글
SQL Server Compact에 대한 제한 사항은 무엇입니까? (또는 MS 플랫폼에서 사용할 데이터베이스를 어떻게 선택합니까?) (0) | 2023.10.09 |
---|---|
배열 요소가 존재하는지 확인하려면 어떻게 해야 합니까? (0) | 2023.10.09 |
C에서 casting void 포인터는 언제 필요합니까? (0) | 2023.10.09 |
오라클에서 쿼리 성능을 측정하는 방법 (0) | 2023.10.09 |
우커머스 신규 고객 관리자 알림 이메일 (0) | 2023.10.09 |