2013-07-03 2 views
1

일부 특수 문자와 공백이있는 문자열이 있습니다. 특수 문자를 제거 할 수는 있지만 어떻게하면 공백을 유지할 수 있습니까?영숫자와 공백을 제외한 모든 것을 제거하십시오.

var a = "dent's dc^e co cbs"; 

var re = /\W/g; 

b = a.replace(re, ''); 

console.log(b); 

그런 식으로 모든 것을 삭제합니다. 그리고 난 당신이 \w와 부정 문자 클래스를 사용할 수있는 W

+0

작동해야합니다. – Anirudha

+0

참고 : '\ s'는 공백 만 일치하지 않으며 모든 공백 문자와 일치합니다. – Guffa

답변

3

(^\s)를 추가하려고 할 때 파산 및 \s :

var re = /[^\w ]/g; 
  • [^\w] 당신에게의 \W
  • 추가로 같은 효과를 제공합니다 빈 공간 " "은 부정 문자 클래스로, 또한 공백을 부인합니다.
+0

그래서'\ w' 다음에 리터럴 공간이 있습니까? 부정은 \ w 때문에 영숫자 문자에도 적용되지 않습니까? – 1252748

+0

@thomas. 예, 문자 그대로의 공간입니다. 네, 부정은 영숫자에도 적용됩니다. 그리고 그것은'\ W'도 마찬가지입니다. 영숫자를 제외한 모든 문자와 일치합니다. –

+0

@thomas. 따라서 문자와 숫자를 제외한 모든 문자가 제거됩니다. –

0

\w에는 숫자가 포함되어 있지 않습니다. 이 정규 표현식을 사용하십시오 : /[^0-9A-Za-z ]/ 숫자, 대문자 및 비 대문자 및 공백을 제외한 모든 문자와 일치합니다.

관련 문제