是否可以使用Javascript循环访问RegEx范围

时间:2015-06-12 12:22:43

标签: javascript regex

我在想,是否可以在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
}

这只是我想知道的事情。如果这是一个愚蠢的问题,我会删除它。

2 个答案:

答案 0 :(得分:3)

这个问题还不清楚,但我想你是否可以用RegEx代替split。你当然可以做到这一点,但有两件事情可以想到。

你不断为每个字母调用新的正则表达式,这会产生一些性能开销。如果您在此链接中执行此操作:http://jsperf.com/regex-vs-split/2它明显优于拆分。这可能与每种语言都不一样,但似乎是在JS中。

答案 1 :(得分:0)

你无法迭代正则表达式。正则表达式可以匹配或测试字符串,但没有字符串没有结果。