답변:
이?
str = str.replace(/\s/g, '');
예
var str = '/var/www/site/Brand new document.docx';
document.write( str.replace(/\s/g, '') );
업데이트 : 바탕으로 이 질문 이 :
str = str.replace(/\s+/g, '');
더 나은 솔루션입니다. 결과는 같지만 더 빠릅니다.
정규식
\s
"공백"에 대한 정규식이며 " g
글로벌"플래그이며 모두 일치 \s
(공백)를 의미 합니다.
에 대한 좋은 설명은 +
찾을 수 있습니다 여기에 .
참고로 작은 따옴표 사이의 내용을 원하는 것으로 바꿀 수 있으므로 공백을 다른 문자열로 바꿀 수 있습니다.
.replace(/\s+/g, '')
더 자주 봅니다. 저의 대답과는 다른 점이 있습니까?
.replace(' ','')
. 매우 감사!
+
사람이 / 그녀도 그를 신용하고자하는 경우 60 표를 가지고 stackoverflow.com/a/5964427/4258817
.replace('/\s+/g', '')
리터럴 문자열을 찾으려고하기 때문에 실수로 정규 표현식을 인용하지 않도록주의하십시오 . 이것은 나를 넘어 ... 전
var a = b = " /var/www/site/Brand new document.docx ";
console.log( a.split(' ').join('') );
console.log( b.replace( /\s/g, '') );
이 작업을 수행하는 두 가지 방법!
가장 빠르고 가장 빠른 :str.replace(/ /g, '');
기준:
내 결과-(2018.07.13) Chrome 67.0.3396 (64-bit), Safari 11.0.3 (13604.5.6), Firefox 59.0.2 (64-bit)의 MacOs High Sierra 10.13.3 :
OP 질문의 예와 유사한 짧은 문자열
모든 브라우저에서 가장 빠른 솔루션은 / /g
(regexp1a)-Chrome 17.7M (작동 / 초), Safari 10.1M, Firefox 8.8M입니다. 모든 브라우저에서 가장 느린 것은 split-join
솔루션 이었습니다 . 변경 에
\s
추가하거나 +
또는 i
처리 아래로 정규 표현식을 느려집니다.
~ 3 개의 밀리언 문자 결과에 대한 문자열의 경우 :
https://jsperf.com/remove-string-spaces/1 컴퓨터에서 실행할 수 있습니다
@rsplak 답변에 따르면 실제로는 split / join 방식을 사용하는 것이 regexp를 사용하는 것보다 빠릅니다. 성능 테스트 사례보기
그래서
var result = text.split(' ').join('')
보다 빠르게 작동
var result = text.replace(/\s+/g, '')
작은 텍스트의 경우 이는 관련이 없지만 텍스트 분석기에서, 특히 사용자와 상호 작용할 때와 같이 시간이 중요한 경우에 중요합니다.
반면에 \s+
더 넓은 공간 문자를 처리합니다. with \n
와 중에서도 문자와 \t
일치하므로를 사용하여 텍스트를 가져올 때 켜 집니다.\u00a0
textDomNode.nodeValue
따라서 여기에서 결론은 다음과 같이 이루어질 수 있다고 생각합니다. 공백 만 교체 해야하는 ' '
경우 split / join을 사용하십시오. 심볼 클래스 의 다른 심볼이있을 수있는 경우 -사용replace(/\s+/g, '')
way faster
. 테스트를 실행하고 그건 단지 내 파이어 폭스 (61)에 2.19 % 빠른
var input = '/var/www/site/Brand new document.docx';
//remove space
input = input.replace(/\s/g, '');
//make string lower
input = input.toLowerCase();
alert(input);
var output = '/var/www/site/Brand new document.docx'.replace(/ /g, "");
or
var output = '/var/www/site/Brand new document.docx'.replace(/ /gi,"");
참고 : 공백을 제거하기 위해 'g'또는 'gi'를 사용하더라도 둘 다 동일하게 작동합니다.
replace 함수에서 'g'를 사용하면 정확히 일치하는지 확인합니다. 그러나 'gi'를 사용하면 대소 문자 구분을 무시합니다.
참고로 여기를 클릭하십시오 .
정규식 + 바꾸기 ()
정규 표현식이 느릴 수 있지만 많은 사용 사례에서 개발자는 한 번에 몇 개의 문자열 만 조작하므로 속도를 고려하지 않는 것이 좋습니다. / /가 / \ s /보다 빠르더라도 '\ s'가 있으면 다른 개발자에게 어떤 일이 더 명확하게 진행되는지 설명 할 수 있습니다.
let string = '/var/www/site/Brand new document.docx';
let path = string.replace(/\s/g, '');
// path => '/var/www/site/Brandnewdocument.docx'
Split () + Join ()
Split + Join을 사용하면 문자열을 추가로 체인으로 조작 할 수 있습니다.
let string = '/var/www/site/Brand new document.docx';
let path => string.split('').map(char => /(\s|\.)/.test(char) ? '/' : char).join('');
// "/var/www/site/Brand/new/document/docx";
" ahm ed ".split('').filter(e => e.trim().length).join('')