我的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/
答案 0 :(得分:2)
不要认为你需要正则表达式来做到这一点。这段代码应该完成你所描述的内容:
$('a').attr('href',$("#mydata").val());
另外值得注意的是,您定位链接的方式 - $('a')
- 将在页面上选择每个链接...
答案 1 :(得分:1)
\\b
不匹配,因为href值已编码并在cMyTest1
中生成(在此特定示例中)。 c
不满足\\b
。根据具体情况,有多种解决方案。一种是在使用正则表达式之前先在href上使用decodeURI
,然后再对其进行编码(尽管可能不需要)。