我在使用正则表达式进行javascript替换时遇到问题
这是代码
var link = document.getElementsByTagName('a');
var i = link.length;
while(i--){
var lnk = link[i].href;
lnk.replace('/^http\:\/\/www\.ringtonematcher\.com\/go\/\?sid\=([\w]+)\&/g', 'test');
}
SID =更换&安培; = sid = test&
答案 0 :(得分:1)
我猜你的问题是你没有对replace
方法的结果做任何事情。它不会改变任何东西,但会返回一个新字符串。如果您想更改href
属性,则需要重新分配:
var links = document.getElementsByTagName('a');
for (var i=0; i<links.length; i++) {
var lnk = link[i].href;
var newlnk = lnk.replace(/^http:\/\/www\.ringtonematcher\.com\/go\/\?sid=(\w+)&/g, 'test$1');
link[i].href = newlnk;
}
我还修正了你的正则表达式中的一些缺陷:
:
,=
或&
字符\w
\w+
为greedy 答案 1 :(得分:0)
删除“正则表达式”周围的引号并分配给变量
var regexed = lnk.replace(/^http\:\/\/www\.ringtonematcher\.com\/go\/\?sid\=([\w]+)\&/g, 'test');