【发布时间】:2010-06-09 04:32:14
【问题描述】:
我的理解是,下面所有这三行都应该返回一个包含 2 个结果的 ARRAY。然而,无论正则表达式在字符串中重复多少次,RegExp 都只会返回 1 个结果。
有人能解释一下原因吗?或许建议我如何让 RegExp 为我提供全局结果?
//INTPUT:
console.log(new RegExp("New York", "gi").exec("New York New York"));
//OUTPUT:
["New York"]
//INTPUT:
console.log(new RegExp(/New York/gi).exec("New York New York"));
//OUTPUT:
["New York"]
//INTPUT:
console.log("New York New York".match(/New York/gi));
//OUTPUT:
["New York", "New York"]
【问题讨论】:
-
现在真正让我感兴趣的是,如果你尝试
(' New York New York ').match(/ New York /gi),它只会带来 1 个结果(正如预期的那样),我想不出更好的方法来解决这个问题(否则需要)other than iterating over it! :(
标签: javascript regex global