[javascript] 자바 스크립트 정규식 공백 제거
그래서 문자열에서 공백을 제거하기 위해 JQuery 용 작은 플러그인을 작성하고 있습니다. 여길 봐
(function($) {
$.stripSpaces = function(str) {
var reg = new RegExp("[ ]+","g");
return str.replace(reg,"");
}
})(jQuery);
내 정규식은 현재 [ ]+
모든 공백을 수집하는 것입니다. 이 작품은 .. 그러나 그것은 … 내 입에 좋은 맛을 떠나지 않아 나는 또한 시도하지 [\s]+
하고 [\W]+
있지만, 어느 쪽도했다 ..
공백 만 검색하는 더 나은 (더 간결한) 방법이 있어야합니다.
답변
리터럴 표기법과 \s
문자 클래스 를 사용하는 것이 좋습니다 .
//..
return str.replace(/\s/g, '');
//..
문자 클래스를 사용하는 \s
것과 단지를 사용하는 것 사이에는 차이가 있습니다 . ' '
예를 들어 훨씬 더 많은 공백 문자와 일치합니다. 검색 하면 ASCII 32 공백 만 대체됩니다.'\t\r\n'
' '
RegExp
당신이 할 때 생성자에 유용 구축 당신이 그것을 필요하지 않습니다이 경우, 동적 패턴.
더욱이, 당신이 말했듯이, 생성자 "[\s]+"
와 함께 작동하지 않았습니다 RegExp
. 그 이유는 문자열을 전달하기 때문입니다. 백 슬래시를 “이중 이스케이프”해야합니다. 그렇지 않으면 문자열 내부에서 문자 이스케이프로 해석됩니다 (예 : "\s" === "s"
(unknown 탈출)).
답변
"foo is bar".replace(/ /g, '')
답변
str.replace(/\s/g,'')
나를 위해 작동합니다.
jQuery.trim
IE에 대해 다음과 같은 해킹이 있지만 영향을받는 버전은 확실하지 않습니다.
// Check if a string has a non-whitespace character in it
rnotwhite = /\S/
// IE doesn't match non-breaking spaces with \s
if ( rnotwhite.test( "\xA0" ) ) {
trimLeft = /^[\s\xA0]+/;
trimRight = /[\s\xA0]+$/;
}
답변
문자열의 모든 공백 제거
// Remove only spaces
`
Text with spaces 1 1 1 1
and some
breaklines
`.replace(/ /g,'');
"
Textwithspaces1111
andsome
breaklines
"
// Remove spaces and breaklines
`
Text with spaces 1 1 1 1
and some
breaklines
`.replace(/\s/g,'');
"Textwithspaces1111andsomebreaklines"
답변
생산 중 및 줄 바꿈 작업
이는 여러 앱에서 추가 공백 / 반환 등을 제거하여 사용자 생성 콘텐츠를 정리하는 데 사용되지만 공백의 의미는 유지합니다.
text.replace(/[\n\r\s\t]+/g, ' ')
답변
이것은 잘 작동합니다 : http://jsfiddle.net/maniator/ge59E/3/
var reg = new RegExp(" ","g"); //<< just look for a space.