在JavaScript中转义RegEx字符

时间:2014-10-20 22:39:06

标签: javascript regex programming-languages

我正在尝试制作一种采用输入代码的编程语言,该代码使用String.replace将新语言的一些内容慢慢翻译成JavaScript,添加了正则表达式转义符。然而,当我最终打印出我最后的东西时,它会保留逃逸,并且会完全搞乱翻译的代码。这就是我现在所拥有的:

<!DOCTYPE html>
<html>
<head>
    <title>Translating</title>
</head>
<body>
    <script type="text/javascript">
        function escapeRegExp(str) {
            return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
        }
        var infile = "{{ }}";
        infile = escapeRegExp(infile);
        infile = infile.replace("[", "{");
        infile = infile.replace("]", "}");


        document.write(infile);
    </script>
</body>
</html>

escapeRegExp是我用来逃避代码的函数。当我完成时,infile变量可能会由PHP填充,但是现在它只有测试代码。

1 个答案:

答案 0 :(得分:0)

我想到了一个非常简单的方法来解决这个问题:只需使用infile = infile.replace(/\\/g, "");,它将用空字符串替换所有反斜杠。