0

我遇到了 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/

4

2 回答 2

2

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

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

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

于 2013-04-17T04:51:40.167 回答
1

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

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

于 2013-04-17T04:54:16.693 回答