[javascript] 자바 스크립트에서 문자열 내부의 공백 제거

정규식 답변으로 자바 스크립트 트림에 대한 이 질문을 읽었습니다 .

그런 다음 트림이 Hello와 World 사이 의 내부 공간 을 제거 할 것으로 예상 합니다.

function myFunction() {
    alert("Hello World ".trim());
}

편집 됨

나는 왜 그것을 기대했다!?

무의미한 말! 분명히 트림은 내부 공간을 제거하지 않습니다!, 선행 및 후행 만, 그것이 트림이 작동하는 방식입니다. 이것은 매우 잘못된 질문이었습니다. 죄송합니다.



답변

공백 문자 제거 사용

"hello world".replace(/\s/g, "");

모든 공백에 대해서는 아래 의견에 Rocket의 제안을 사용하십시오!


답변

아마도 당신 이 받아 들여진 대답에서 해결책구현하는 것을 잊었 기 때문일 것 입니다. 그것이 trim()작동 하는 코드입니다 .

최신 정보

이 답변은 이전 브라우저에만 적용됩니다. 최신 브라우저는 분명히 trim()기본적으로 지원 합니다.


답변

Strings replace 메서드를 정규식으로 사용할 수 있습니다 .

"Hello World ".replace(/ /g, "");

replace () 메서드는 패턴의 일부 또는 모든 일치 항목이 대체로 대체 된 새 문자열을 반환합니다. 패턴은 문자열 또는 RegExp 일 수 있습니다.

RegExp

  • / / -정규식 일치 공백

  • 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


답변