我需要帮助javascript替换正则表达式

时间:2012-08-21 21:56:00

标签: javascript regex replace

我在使用正则表达式进行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&

2 个答案:

答案 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;
}

我还修正了你的正则表达式中的一些缺陷:

  • 它必须是regex literal,而不是字符串(删除撇号)
  • 您无需转义:=&字符
  • 您无需在character class
  • 中包含字符类快捷方式\w
  • 您不希望\w+greedy

答案 1 :(得分:0)

删除“正则表达式”周围的引号并分配给变量

var regexed = lnk.replace(/^http\:\/\/www\.ringtonematcher\.com\/go\/\?sid\=([\w]+)\&/g, 'test');