我寫了一個正則表達式,我期望它能正常工作,但事實並非如此。如何將方括號內的數字與正則表達式匹配
var regex = new RegExp('(?<=\[)[0-9]+(?=\])')
JavaScript是給我的錯誤Invalid regular expression :(/(?<=[)[0-9]+(?=])/): Invalid group
是否JavaScript的不支持前瞻或回顧後?
我寫了一個正則表達式,我期望它能正常工作,但事實並非如此。如何將方括號內的數字與正則表達式匹配
var regex = new RegExp('(?<=\[)[0-9]+(?=\])')
JavaScript是給我的錯誤Invalid regular expression :(/(?<=[)[0-9]+(?=])/): Invalid group
是否JavaScript的不支持前瞻或回顧後?
這應該工作:
var regex = /\[[0-9]+\]/;
var regex = /\[([0-9]+)\]/;
有了這個表情,你可以做這樣的事情:
var matches = someStringVar.match(regex);
if (null != matches) {
var num = matches[1];
}
Lookahead支持,但不是向後看。你可以get close,有點欺騙。
如果您引用RegExp,請注意雙反斜槓。
要在表格增加多個號碼中的讓說:
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'
這包括括號,這是不是OP想要的數量相匹配。不過,這是一個體面的替代方案。 – strager 2010-08-09 22:35:25
好點 - 更新。 – jmar777 2010-08-09 22:37:12
感謝您的解決方法。有點kludgeish,但哦。 – Teddy 2010-08-10 02:27:22