次のような URL があります。
<a href="http://url/images/1034749-184e-3467-87e0-d7546df59896?w=600&r=22036"></a>
置き換えたい:別の ID で、' ' と ' ' 文字の1034749-184e-3467-87e0-d7546df59896
間の JavaScript を使用して ID を置き換えることができる正規表現または同様の置換メソッドはありますか?image/
?
次のような URL があります。
<a href="http://url/images/1034749-184e-3467-87e0-d7546df59896?w=600&r=22036"></a>
置き換えたい:別の ID で、' ' と ' ' 文字の1034749-184e-3467-87e0-d7546df59896
間の JavaScript を使用して ID を置き換えることができる正規表現または同様の置換メソッドはありますか?image/
?
次の近似式を作成できます。
/[0-9a-z]+(?:-[0-9a-z]+){4}/i
一連の 16 進数とそれに続く 4 つのセクションに一致し、それぞれがダッシュで始まり、一連の 16 進数が続きます。
> var s = 'http://url/images/1034749-184e-3467-87e0-d7546df59896?w=600&r=22036';
> console.log(s.replace(/[0-9a-z]+(?:-[0-9a-z]+){4}/i, 'something-else'));
http://url/images/something-else?w=600&r=22036
/images\/[^?]+/
一致しますが、同様に置き換えimages/
られます。
幸いなことに、次のようにコールバックを渡すことができます.replace
:
url.replace(/(images\/)[^?]+/, function($match, $1) {
// results in "images/<some-ID>"
return $1 + theNewId;
});
とにかくDOM要素への参照がある場合は、パスの最後のステップを置き換えることもできます:
element.pathname =
element.pathname.substring(0, element.pathname.lastIndexOf('/') + 1) + newId;
はい、これを行うだけです:
var url = document.getElementById("yoururlid").src;
url = url.split("/");
var newUrl = url[0] + url[1] + url[2] + url[3] + newURLID;
なぜこれをしないのですか:
document.getElementById("yoururlid").src="http://url/images/" + newId + "?w=600&r=22036";