2017-01-05 5 views
2

자바 스크립트 언어로 문자열 내부에서 공백을 제거해야합니다. 왼쪽과 오른쪽은 그 공간을 가질 수 있습니다. 나는 해결책을 찾지 못한다 ...JS : 문자열 내부에서만 공백을 제거하는 방법

아마도 일부 기본 기능이 있습니까? 또는 일부 정규식이 있습니까?

str = str.replace(/\s+/g, ''); 

을하지만 너무 측면에서 공백을 제거합니다

는 난 단지있다.

내가 원하는 :

var str = "  s dasd   asd sad sa d  "; 
str = str.replace(/\s+/g, ''); 
// output 
"  sdasdasdsadsad  "; 
+1

당신은 당신이 원하는의 예를 넣을 수 :

도 사용 교대, (?:\s| ) 을 지원하기 위해? –

+0

작은 예제를 추가했습니다 – Vital

+0

' '은 공백이 아닙니다 ... 공백으로 생각하면 정확히 모호합니다. – deceze

답변

4

당신은 일치하고 다른 모든 공백을 선도/후행 공백을 캡처하고 역 참조와 결과에 복원 및 제거 할 수 있습니다.

var str = " some text "; 
 
str = str.replace(/(^\s+|\s+$)|\s+/g, '$1'); 
 
console.log("'",str,"'");

패턴 자세한 사항 :

  • (^\s+|\s+$) - 그룹 1 문자열 (^\s+의 시작 부분에 하나 이상의 공백 1) 캡처) 또는 2)의 말 문자열 (\s+$)
  • | - 또는
  • \s+ - 문자열의 다른 모든 위치에 공백이 1 개 있습니다.

$1은 결과 문자열에 다시 삽입되는 캡처 그룹 내용에 대한 역 참조입니다.

console.log("  s dasd   asd sad sa d  ".replace(/(^(?:\s| )+|(?:\s| )+$)|(?:\s| )+/g, '$1'));