1

次のような URL があります。

<a href="http://url/images/1034749-184e-3467-87e0-d7546df59896?w=600&amp;r=22036"></a>

置き換えたい:別の ID で、' ' と ' ' 文字の1034749-184e-3467-87e0-d7546df59896間の JavaScript を使用して ID を置き換えることができる正規表現または同様の置換メソッドはありますか?image/?

4

3 に答える 3

3

次の近似式を作成できます。

/[0-9a-z]+(?:-[0-9a-z]+){4}/i

一連の 16 進数とそれに続く 4 つのセクションに一致し、それぞれがダッシュで始まり、一連の 16 進数が続きます。

> var s = 'http://url/images/1034749-184e-3467-87e0-d7546df59896?w=600&amp;r=22036';
> console.log(s.replace(/[0-9a-z]+(?:-[0-9a-z]+){4}/i, 'something-else'));

http://url/images/something-else?w=600&amp;r=22036
于 2013-02-22T15:11:08.527 に答える
3

/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;
于 2013-02-22T15:13:26.920 に答える
0

はい、これを行うだけです:

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&amp;r=22036";
于 2013-02-22T15:13:00.083 に答える