Javascript正则表达式替换不起作用

时间:2012-11-16 20:38:19

标签: javascript regex

对于我的生活,我不能想出如何用JavaScript中的值替换[的所有<]的所有>

这是我尝试过的,但它不起作用:

function SwitchDialog(NextDialog)
{
    if (NextDialog=='SCHEDULE') {
        $('.popup1').smart_modal_hide();
    } else if (NextDialog=='LICENSEE') {
        gotoLicensee(licenseeLink);
    } else if (NextDialog=='REVIEWCART') {
        window.location = CART_URL;
    } else if (NextDialog=='RFO') {
        window.location = REGISTER_FOR_OTHERS_URL;
    } else {
        if (NextDialog=='PREREG') {
            var msgtxt = gk_text.replace(//[/g, '<');
            msgtxt     = msgtxt.replace(//]/g, '>');
            DialogTemps[NextDialog].msgtext = msgtxt; // error occurs on this line
        }
        RenderDialog(NextDialog);
    }
}

我得到了Syntax error: "missing ) after argument list;在指定msgtext的行上。

我到底做错了什么?

3 个答案:

答案 0 :(得分:6)

你需要用反斜杠(\)转义表达式中的[和]字符,如下所示:

        var msgtxt = gk_text.replace(/\[/g, '<');
        msgtxt     = msgtxt.replace(/\]/g, '>');

答案 1 :(得分:4)

您注释了结束),因此错误。

你需要在正则表达式中转义/,并且也不要错误地逃避[]即使这里可能不需要< / S>

var msgtxt = gk_text.replace(/\/\[/g, '<');
msgtxt     = msgtxt.replace(/\/\]/g, '>');

答案 2 :(得分:0)

您需要使用[转义]\个字符,然后才能special meaning in regex

var msgtxt = gk_text.replace(/\[/g, '<').replace(/\]/g, '>');