2011-01-31 7 views

답변

3

replace 기능을 사용할 수 있습니다.

str.replace(regexp|substr, newSubstr|function) 
69

replace()을 정규식과 함께 사용하면 가장 유연하고 강력합니다. 또한 자바 스크립트에서 검색 패턴의 모든 인스턴스를 전역 적으로 대체하는 유일한 방법이기도합니다. replace()의 정규식이 아닌 변형은 첫 번째 인스턴스 만 대체합니다.

예를 들어

:

var str = "foo gar gaz"; 

// returns: "foo bar gaz" 
str.replace('g', 'b'); 

// returns: "foo bar baz" 
str = str.replace(/g/gi, 'b'); 

후자의 예에서, 후행 /gi은 일반적으로 원하는 것입니다 경우 - 무감각과 (단지 첫 번째 인스턴스를 교체해야 함을 의미) 글로벌 교체를 표시 할 때를 문자열에서 대체합니다. 으로

문자를 제거 교체로 빈 문자열을 사용

var str = "foo bar baz"; 

// returns: "foo r z" 
str.replace(/ba/gi, ''); 
+1

좋은 답변입니다. 그런데'str.replace ('g', 'b');는 작동하지 않습니다. 'str = str.replace ('g', 'b');를 사용하면 대답이 더 좋을 것입니다. – Yuci

3

나는 이것이 오래 알고 있지만 당신이 분할을 할 경우 다음 즉 특정 문자의 모든 항목을 제거합니다 가입 :

var str = theText.split('A').join('') 

분명히 그것은 그렇지 않다, 문자열에서 'A'의 모든 항목을 제거합니다 민감한

+1

이것은 in-place 함수가 아니기 때문에'theText = theText.split ('A'). join ('')'이 필요합니다. 이 명령은 대괄호와 같은 이상한 문자에 특히 유용합니다. – cameronroytaylor

+0

댓글에 비추어 업데이트되었습니다. – atamata

14

ONELINER (한 번에 하나 이상의) 문자 목록을 제거 - 예를 들어 전화 번호에서 +,-, ,(,)을 제거 :

var str = "+(48) 123-456-789".replace(/[-+()\s]/g, ''); // result: "48123456789" 

우리는 우리가합니다 ([]

사이에 원치 않는 문자를 넣어 정규 표현식 [-+()\s]를 사용 "\s"은 '공백'문자 이스케이프입니다. google '문자가 정규식에서 이스케이프됩니다.)

2

아무도 이야기하지 않은 또 다른 방법은 substr 메서드입니다 다른 문자열에서 문자열을 생성하려면 ... 문자열이 길이를 정의하고 제거하는 문자가 문자열의 끝에 있거나 ... 문자열의 "정적 차원"내에서 유용 할 때 유용합니다.