-1

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 = replace&= sid = test&

4

2 に答える 2

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

また、正規表現のいくつかの欠陥を修正しました。

于 2012-08-21T22:14:26.660 に答える
0

「正規表現パターン」を囲む引用符を削除し、変数に割り当てます

var regexed = lnk.replace(/^http\:\/\/www\.ringtonematcher\.com\/go\/\?sid\=([\w]+)\&/g, 'test');
于 2012-08-21T22:13:46.080 に答える