2011-07-02 2 views
0

대괄호로 묶인 숫자의 문자열 패턴을 제거하고 싶습니다. [1], [25], [46], [345] (괄호 안에 3 문자까지 입력해야합니다.) 빈 문자열 ("")로 바꾸고 싶습니다. 즉, 제거하십시오.Javascript가 RegExp를 사용하여 문자열 패턴을 대체 하시겠습니까?

정규식을 사용하여이 작업을 수행 할 수 있음을 알고 있지만이 작업에 익숙하지 않습니다. 여기에 내가 아무것도하지 않는 것을 가지고있다 :

var test = "this is a test sentence with a reference[12]"; 
removeCrap(test); 
alert(test); 

function removeCrap(string) { 

var pattern = new RegExp("[...]"); 
string.replace(pattern, ""); 

}

이 사람이 좀 도와 주 시겠어요? 희망이 질문은 분명하다. 감사.

답변

0

이 그것을 할 것입니다 :

test = test.replace(/\[\d+\]/g, ''); 
  • \[ 자체에 [는 문자 범위
  • \d+ 소개하기 때문에 - 자리
  • /g 상기와
  • \]의 수를 - 그것을 모든 경우에 대해

NB : String.replace은 원래 문자열을 변경하지 않으므로 결과를 새 변수 또는 원래대로 다시 지정해야합니다.

+0

대단히 감사합니다. – maxcollins

3
  1. [] 그것이 character class를 생성, 정규 표현식에서 특별한 의미를 갖습니다. 이러한 문자를 문자 그대로 일치 시키려면 문자를 이스케이프 처리해야합니다.

  2. replace[docs]은 전역 플래그/수정자를 설정하지 않는 한 문자열/표현식이 처음 나타나는 을 첫 번째로 대체합니다 ().

  3. replace은 새 문자열을 반환하지만 문자열은 그대로 유지됩니다. 이 점을 염두에 갖는

이 그것을 수행해야합니다

var test = "this is a test sentence with a reference[12]"; 
test = test.replace(/\[\d+\]/g, ''); 
alert(test); 

정규 표현식 설명 :

자바 스크립트에서 /.../정규식 리터럴입니다. g은 글로벌 플래그입니다.

  • \[ 일치 [ 그대로
  • \d+ 그대로

은 정규 표현식에 대한 자세한 내용을 배울 수 MDN documentation에서와 http://www.regular-expressions.info/ 좀보고 하나 개 이상의 숫자

  • \] 일치 ] 일치합니다.

  • +0

    많은 사람에게 고마움을 전합니다. – maxcollins

    +0

    @maxcollins : 내 기쁨 :) 안녕하세요. 오신 것을 환영합니다. 가장 도움이 된 답변을 수락하는 것을 잊지 마십시오. –

    관련 문제