我在想,是否可以在JavaScript中循环使用RegEx范围。比方说,我想循环遍历字母表中的每个字母,我可以这样做:
var theAlphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
[].forEach.call(theAlphabet, function (a) {
console.log(a);
});
请注意,我知道我可以通过在字符串上使用.split()
然后循环来完成此操作,但无论如何我想知道如果不是字符串我可以使用RegEx范围,这样的事情(我知道它不起作用)
var reg = new RegExp(/A-Z/), result;
while((result = reg.exec(reg)) !== null) {
console.log(result); // ["A-Z", index: 1, input: "/A-Z/"] - Not correct I realise
}
这只是我想知道的事情。如果这是一个愚蠢的问题,我会删除它。
答案 0 :(得分:3)
这个问题还不清楚,但我想你是否可以用RegEx代替split。你当然可以做到这一点,但有两件事情可以想到。
你不断为每个字母调用新的正则表达式,这会产生一些性能开销。如果您在此链接中执行此操作:http://jsperf.com/regex-vs-split/2它明显优于拆分。这可能与每种语言都不一样,但似乎是在JS中。
答案 1 :(得分:0)
你无法迭代正则表达式。正则表达式可以匹配或测试字符串,但没有字符串没有结果。