根據MDC https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/exec,以下代碼應記錄此正則表達式的每個全局匹配項。RegExp.exec不返回全局結果
var str = "(^|\\+)(1\\+1)($|\\+)";
var regex = new RegExp(str, "g");
var result;
var testString = "1+1+1";
while ((result = regex.exec(testString)) != null)
{
console.log(result);
}
但我得到的是第一個匹配,然後循環結束。任何想法爲什麼。
我沒有意識到全局匹配不能重疊。無論如何,我可以通過正則表達式匹配重疊匹配嗎? – wheresrhys 2010-10-13 00:44:33
我不知道一種方式,除了在testString.substring(0)','testString.substring(1)'等上運行它的明顯(低效率)方法之外。 – 2010-10-13 00:49:18
這真是一個恥辱,因爲我有使用嵌套循環實際上是比問題中的簡化示例更復雜的情況),儘管它仍然是一個非常簡單的任務,而我通過正則表達式將會非常適合。 – wheresrhys 2010-10-13 09:37:17