据我的理解,下面这三行代码都应该返回一个包含两个结果的数组。但是无论正则表达式在字符串中重复多少次,RegExp只会返回一个结果。
有人能解释一下为什么吗?或者建议一下我如何让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)
它只会带来一个结果(有点意料之中),而我想不出更好的方法来解决这个问题(当需要时除了迭代)除了迭代! :( - cregox