2010-08-09 4 views
9

작동해야한다고 생각하는 정규 표현식을 작성했지만 작성하지 않았습니다.대괄호 안에있는 숫자와 정규식을 일치시키는 방법

var regex = new RegExp('(?<=\[)[0-9]+(?=\])') 

자바 스크립트는 나에게 오류 Invalid regular expression :(/(?<=[)[0-9]+(?=])/): Invalid group

자바 스크립트가 내다을 지원하거나 lookbehind하지 않습니다주고있다?

답변

17

이 작동합니다 :

var regex = /\[[0-9]+\]/; 


편집을 : 그룹화 연산자 단지 수 대상 :이 표현으로

var regex = /\[([0-9]+)\]/; 

을, 당신은 같은 것을 할 수 있습니다 :

var matches = someStringVar.match(regex); 
if (null != matches) { 
    var num = matches[1]; 
} 
+0

이는 영업 이익이 원하는 것을하지 괄호를 포함하여 번호와 일치 말할 수의의 형식은 여러 숫자를 증가합니다. 그것은 그룹과 함께 괜찮은 대안이다. – strager

+0

좋은 지적 - 업데이트 됨. – jmar777

+0

해결해 주셔서 감사합니다. 살짝 kludgeish하지만 오 잘. – Teddy

2

Lookahead가 지원되지만 둘러보기가 지원되지 않습니다. 약간의 속임수로 get close을 사용할 수 있습니다.

0

RegExp을 인용하는 경우 백 슬래시를 두 번 이스케이프 처리하십시오.

1
var str = '/a/b/[123]/c/[4567]/[2]/69'; 

시도 :

str.replace(/\[(\d+)\]/g, function(m, p1){ 
return '['+(p1*1+1)+']' } 
) 

//Gives you => '/a/b/[124]/c/[4568]/[3]/69' 
관련 문제