텍스트에서 공백을 모두 제거하십시오.


587
$("#topNav" + $("#breadCrumb2nd").text().replace(" ", "")).addClass("current");

이것은 내 코드의 스 니펫입니다. 다른 ID의 텍스트 속성을 얻은 후 ID에 클래스를 추가하고 싶습니다. 이 문제는 내가 필요한 텍스트를 보유한 ID이며 글자 사이에 공백이 있습니다.

공백을 제거하고 싶습니다. 나는 시도 TRIM()하고 REPLACE()있지만, 이것은 부분적으로 만 작동합니다. 는 REPLACE()단지 1 공간을 제거합니다.

답변:


1347

정규식을 반복하려면 replace ()에 지시해야합니다.

.replace(/ /g,'')

g의 문자는 전체 문자열을 통해 검색을 반복하는 것을 의미합니다. 이것과 JavaScript 에서 사용할 수있는 다른 RegEx 수정 자에 대해서는 여기를 참조하십시오 .

리터럴 공백 문자뿐만 아니라 모든 공백을 일치 시키려면 \s대신 다음을 사용하십시오 .

.replace(/\s/g,'')

30
Coffeescript는 그 엄숙한 이유로 그 정규 표현식에 대해 불평 할 것입니다. 대신에 나는 계속해서 .replace(/\s+/g, '')사용해야합니다.
Dan Bradbury

7
당신이 선도 공백이 제거 후행 문자열의 복사본을 돌려줍니다 루비의 string.strip 방법 같은 것을 구현하려면이 작업을해야합니다 : 수단을 공백 문자열의 시작, 이후 수단의 끝에 공백 문자열에서, 는 그룹의 / 또는에 해당하며 수정자는 위의 주석에 설명되어 있습니다. 또한 하나 이상의 공백 인스턴스를 캡처 할 때마다 수량 화기 가 필요 합니다. x = " Many spaces before and after " y = x.replace(/(^\s+|\s+$)/g, "")^\s\s$|g+\s
개렛 심슨

298
.replace(/\s+/, "") 

첫 번째 공백 만 대체합니다. 여기에는 공백, 탭 및 줄 바꿈이 포함됩니다.

문자열의 모든 공백을 바꾸려면 전역 모드를 사용해야합니다

.replace(/\s/g, "")

11
첫 번째는 모든 공백을 제거하지는 않으며 (첫 번째 그룹의 공백 / 줄 바꾸기 / 탭만 제거합니다) 두 번째는 정상입니다. 데모 : regex101.com/r/wX8rF2/3

4
.replace (/ \ s + / g, '')
mynameistechno

@mynameistechno +우리가 이미 g(전역) 수정자를 사용하고 있기 때문에 아무것도 추가하지 않습니다
d4nyll

첫 줄은 텍스트에서 후행 공백을 제거하지 않기 때문에 작동하지 않았습니다
UKDataGeek

@ d4nyll보다 효율적일 수 있습니다.
Solomon Ucko

5

String.prototype.replace다른 답변에서 언급했듯이 정규식과 함께 사용 하는 것이 가장 좋은 해결책입니다.

그러나 재미를 위해 String.prototype.splitand 를 사용하여 텍스트에서 모든 공백을 제거 할 수도 있습니다 String.prototype.join.

const text = ' a b    c d e   f g   ';
const newText = text.split(/\s/).join('');

console.log(newText); // prints abcdefg

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