首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过捕获括号来拆分Regex -浏览器支持:

通过捕获括号来拆分Regex -浏览器支持:
EN

Stack Overflow用户
提问于 2014-07-17 07:18:33
回答 1查看 793关注 0票数 5

看看这个样本:

代码语言:javascript
复制
>'1,2,3,4,5'.split(/,/)

结果:["1", "2", "3", "4", "5"]

但是看看这个样本:

代码语言:javascript
复制
>'1,2,3,4,5'.split(/(,)/)

结果:["1", ",", "2", ",", "3", ",", "4", ",", "5"]

来自MDN

如果分隔符是包含捕获括号的正则表达式,那么每次匹配分隔符时,捕获括号的结果(包括任何未定义的结果)将拼接到输出数组中。然而,并不是所有浏览器都支持此功能.

问题:

在哪里可以找到支持该功能的浏览器(和版本)列表。

mdn不公开这些信息。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-17 10:29:34

浏览器

Internet Explorer

史蒂文·莱维森XRegExp网站的博客中可以看出,正确的行为(将捕获组捕获的文本包含在结果数组中)是在Internet 8上实现的而不是

我已经在浏览器堆栈上独立地确认了这一结果,并进一步证实了String.split在提供带有捕获组的正则表达式时的行为仅从版本10开始为Internet正确实现。

以下是相关屏幕截图的链接:

附录

测试站点的完整源代码:

代码语言:javascript
复制
<html>
<head>
</head>
<body>
<script type="text/javascript">
document.write("<h1>Testing String.split, given regex with capturing group</h1>");

function runTest(num, actual, expected) {
    var equals = true;

    if (actual.length === expected.length) {
        for (var i = 0; i < actual.length; i++) {
            if (actual[i] !== expected[i]) {
                equals = false;
                break;
            }
        }  
    } else {
        equals = false;
    }

    document.write("<h2>Test " + num + ":</h2>");
    document.getElementsByTagName('body')[0].appendChild(document.createTextNode("'" + actual.join("'     '") + "'"));
    document.write(equals ? "<h2>Compliant to ECMA 5.1</h2>" : "<h2>NOT compliant to ECMA 5.1</h2>");
}
</script>
<script type="text/javascript">
runTest(1, '1,2,3,4,5'.split(/(,)/), ["1", ",", "2", ",", "3", ",", "4", ",", "5"]);
</script>

<script type="text/javascript">
runTest(2, 'ABCDEF'.split(/()/), ["A", "", "B", "", "C", "", "D", "", "E", "", "F"]);
</script>

<script type="text/javascript">
runTest(3, 'text<a>text</a>'.split(/<(\/)?([^>]+)>/), ["text", void 0, "a", "text", "/", "a", ""]);
</script>
</body>
</html>
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24797170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档