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


101

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

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

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

편집 됨

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

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


10
trim은 문자열의 시작과 끝에서 공백을 제거합니다
Manse

3
트림 제거합니다은 공백 이전이후에 문자열. Hello World이미 " '손질한다.
로켓 위험물에게

@limelights 대신에 "Hello World"의이 "Helloworld"쇼에
에르난 Eche

4
@void : "트리밍"이 아니라 다른 문제입니다.
Rocket Hazmat

답변:


236

공백 문자 제거 사용

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

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


137
.replace(/ /g, '')두 개 이상의 공간이있는 경우 사용할 수 있습니다 .
Rocket Hazmat

@Rocket, 그것은 절대적으로 사실이며 아직 답변을 업데이트하지 않았습니다! 감사! :)
Henrik Andersson

47
@Juhana : 다른 공백도 제거하려면 다음을 수행하십시오 .replace(/\s/g, '').
Rocket Hazmat

12
@RocketHazmat 네! 정답! 약간 더 효율적일 수 있지만 : str.replace (/ \ s + / g, '')
jackocnr

3
@PitchiahNatarajan \s은 공백, 탭 및 새 줄과 일치합니다.
Rocket Hazmat

8

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

최신 정보

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


2
꼭 그런 것은 아닙니다. 일부 브라우저에는 내장되어 있습니다. :-P
Rocket Hazmat

1
현재 대부분의 최신 브라우저에서 현재-> kangax.github.com/es5-compat-table
Manse

1

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

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

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

RegExp

  • / / -정규식 일치 공백

  • g- 글로벌 플래그; 첫 경기 후에 멈추지 않고 모든 경기를 찾습니다.


1

당신이 사용할 수있는

"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


현재 허용 대답은 같은 일을한다. 이것이 나노초 이상으로 그 대답보다 빠르다는 것을 나타내는 관련 테스트를 제시하십시오.
Heretic Monkey

@HereticMonkey 업데이트되었습니다!
ArlanG
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.