爲什麼這個代碼(here's the JSBin):不能使之路感JavaScript的正則表達式的作品
var text = "T: 01202 870738";
var regex1 = /T: (.*)/;
var matches1 = text.match(regex1);
for(var i = 0; i < matches1.length; i++) {
log("[" + i + "]: " + matches1[i]);
}
將這一情況記錄:
[0]: T: 01202 870738
[1]: 01202 870738
和驗證碼(注意:我已經添加了g
選項):
var regex2 = /T: (.*)/g;
var matches2 = text.match(regex2);
for(var i = 0; i < matches2.length; i++) {
log("[" + i + "]: " + matches2[i]);
}
將這一情況記錄:
[0]: T: 01202 870738
我其實不明白爲什麼第一個代碼是01202 870738
作爲第二個匹配。如果/T: (.*)/
不包含T:
,那麼它是如何匹配的?
獎金的問題:你怎麼組列表清單,如OP是半顯然期待? – cHao
@cHao:'exec'在循環或'替換',我想? 'replace'很有趣:'var result = []; text.replace(regex2,function(){result.push.apply(result,arguments);});' – Ryan
@cHao:的確如此。 – Juan