【问题标题】:javascript regex backrefencejavascript正则表达式反向引用
【发布时间】:2012-10-05 10:33:12
【问题描述】:

这是php regex: phone number 7-12 digits may contain hypen or space的延续

我仍在尝试理解反向引用。以下是我用来测试反向引用的 JavaScript 代码。当我运行此代码时,仅输出 null。我哪里错了?

<script type="text/javascript">
function myRegexFunc()
{   myString="abcabcxabcdefghi";
    patt1=new RegExp("(abc)?\1x\1");
    document.write(patt1.exec(myString));
}
</script>
</head>

<body onload="myRegexFunc()">
</body>

【问题讨论】:

    标签: javascript regex backreference


    【解决方案1】:

    你需要转义字符串中的\

    patt1 = new RegExp("(abc)?\\1x\\1");
    

    或者你可以使用正则表达式:

    patt1 = /(abc)?\1x\1/;
    

    【讨论】:

    • 你能说出为什么“abc”后面有一个逗号吗?我认为结果应该只是“abcabccxabc”。谢谢。
    • @vaanipala 因为结果是一个数组。
    • 但是应该只有一个匹配项。我仍然不明白输出中的第二个“abc”。请帮忙。
    猜你喜欢
    • 1970-01-01
    • 2011-01-27
    • 1970-01-01
    • 2017-04-01
    • 1970-01-01
    • 2010-11-28
    • 2018-07-13
    • 1970-01-01
    • 2019-03-25
    相关资源
    最近更新 更多