2010-08-09 9 views

Odpowiedz

17

To powinno działać:

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


zmienił: z operatorem grupowania kierować tylko numer:

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

Z tego wyrażenia, można zrobić coś takiego:

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

To zgadza się z numerem w tym wsporników, które nie jest tym, co PO chce. Jest to przyzwoita alternatywa dla grup. – strager

+0

Dobra uwaga - zaktualizowana. – jmar777

+0

Dzięki za obejście. Nieco kudłaty, ale no cóż. – Teddy

2

Antycypacja jest obsługiwana, ale nie lookbehind. Możesz get close, z odrobiną oszustwa.

0

Jeśli cytujesz RegExp, uważaj na podwójne ucieczkę od ukośników.

1

Aby zwiększyć kilku numerów w formie powiedzmy:

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

Spróbuj:

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

//Gives you => '/a/b/[124]/c/[4568]/[3]/69' 
Powiązane problemy