javascript - "modern"网络浏览器中正则表达式的最大大小/长度?

标签 javascript regex

现代浏览器(即 Firefox 3+、Safari 4+、IE 7+)中正则表达式的最大大小是多少?假设一个简单的正则表达式,例如“foo|bar|baz|woot|...”

最佳答案

您可以使用此代码在 IE8/firefox 和 firebug/Chrome 中进行测试。

var regex = "";
var maximum = 100;
var showAfter = 95;
for(i = 1; i < maximum; i++) {
    regex += "aaaaaaaaaa";
    if (i > showAfter) {
        console.log(10 * i + " chars");
        console.log(RegExp(regex));
    }
}

当你出错时,你找到了限制。


简单测试

var regex = "";
var chars = 3204161;
for(i = 0; i < chars; i++) {
    regex += "a";
}
alert(chars + " chars");
var a = RegExp(regex); // don't send to console, to be faster

结果

在 Firefox 3.6.3(Ubuntu 32 位)中,当我尝试使用 9M 个字符(9.999.990 个字符) 3.204.161 个字符的正则表达式时出现错误。使用 3.204.160 就可以了。

在 Chrome 5.0.3 中,字符数限制在 2000 万到 2500 万之间。

在 firefox 中的错误是:

script stack space quota is exhausted

注意:如果你做了一些测试,请在这里评论。

关于javascript - "modern"网络浏览器中正则表达式的最大大小/长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3681460/

相关文章:

mysql - 在 MySQL 中查找并替换字符串的一部分

Python 自动检测和分割正则表达式组

javascript - 用分数正则表达式替换分数,用数字正则表达式替换数字

Java正则表达式错误

Javascript 在标签上添加 css 类

javascript - 如何删除值并向 JavaScript 对象添加索引列?

javascript - ggggleClass 不是第一次添加类 & 进一步工作

javascript - 在 firebase 中给定 id 之后获取更多数据

javascript - react /归零 : redirect after loggin

regex - bash 脚本 - 使用 sed 或 awk 拆分和提取数据