javascript字符串替换为RegEx

时间:2013-04-17 04:44:11

标签: javascript regex

我的javascript RegExp出了问题。当我点击按钮时,我想用a.href取代textbox。但是,我不想替换整个字符串只是想找到并替换那些与我的RegExp完全匹配的字符串。这是我的代码

$(document).ready(function(){
    $('#btnRun').click(function(){
        var str = encodeURIComponent($('#mydata').val());
        var regExp = new RegExp('\\b' +encodeURIComponent( $('a').html()) + '\\b','gi');
        $('a').attr('href',$('a').attr('href').replace(regExp,str));
    });
});

这是我的测试代码 http://jsfiddle.net/4uAp5/1/

2 个答案:

答案 0 :(得分:2)

不要认为你需要正则表达式来做到这一点。这段代码应该完成你所描述的内容:

$('a').attr('href',$("#mydata").val());

另外值得注意的是,您定位链接的方式 - $('a') - 将在页面上选择每个链接...

答案 1 :(得分:1)

\\b不匹配,因为href值已编码并在cMyTest1中生成(在此特定示例中)。 c不满足\\b。根据具体情况,有多种解决方案。一种是在使用正则表达式之前先在href上使用decodeURI,然后再对其进行编码(尽管可能不需要)。

http://jsfiddle.net/4uAp5/4/