2016-10-26 13 views
1

okですので、私は約4つの異なる質問をチェックしていますが、答えは私に与えられていません。 :(jQuery Regexがピックアップしない

私が取り組んでいるウェブサイトには数百のページがありましたが、残念なことにURLのタグの構造が変わっています。そして、そのページはテキストとリンク(FML)今のクエリは、すべてのこれらのリンクを変更してもらうことであろう

私はこれを使用して試してみることにしました:。

$(document).ready(function() { 
$('a').each(function() { 

    var str2 = "tag="; 
    var link = $(this).attr('href'); 
    if(link.indexOf(str2) != -1){ 

     var link = link.replace("/tag=.*/","tag/$1"); 
     $(this).attr('href', link); 
    } 
}); 

}) 

私は「タグをスキャン「のhref」の値を取得するためにされて必要なもの= eコマース 'や' tag = b2b 'などを変更して構造を'タグ/ eコマース 'または'タグ/ b2b 'に変更する

しかし、それは動作していません。

私には何が欠けていますか?

+0

私はよく正規表現を知らないが、プレースホルダは唯一私が考えるブラケットを充填することができます。そういや、ことを試してみました – Chris

+0

"/tag=(.*)/" を試してみてください:/ – JamesG

+0

をそれを得た:( "タグ="、 "タグ/")に置き換えます。文字列から何かを選択する正規表現ではありません。それは何かを置き換えることです。あなたは、あなたが別の文字列にあなたのリンクに置換する文字列のみを必要とする代わりに、実際の正規表現を必要としません。 – Chris

答えて

1

あなたは正規表現構文/YourRegex/の代わり"/YourRegex/"を使用する必要があります。そして、そのようにキャプチャグループを使用します。

$(document).ready(function() { 
 
$('a').each(function() { 
 

 
    var str2 = "tag="; 
 
    var link = $(this).attr('href'); 
 
    if(link.indexOf(str2) != -1){ 
 

 
     var link = link.replace(/tag=(.*)/,"tag/$1"); 
 
     $(this).attr('href', link); 
 
    } 
 
}); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
 
<a href="www.foo.com/tag=MyTag">MyLink</a>

関連する問題