仅替换Javascript中的最后一个数字

时间:2013-08-05 06:28:29

标签: javascript html

我有一个名为“分隔符”的div,其中包含不同路径的网址,但每个网址都有一个相似之处。我所做的是从该div获取URL并替换特定参数。

HTML代码:

<div class="separator">
<a href="http://www.mydomain.com/images/s1600/photo.jpg"><img src="http://www.mydomain.com/images/s1600/photo.jpg" height="225" width="400" /></a>
</div>

以下是JavaScript代码:

var ImageSource = document.getElementsByClassName('separator')[0].getElementsByTagName('a')[0].href;
ImageSource = ImageSource.replace("0", "0-d");

此代码工作正常,我只想定位0中的最后一个/s1600/,因为当此值有2个零时,它会像这样输出:

http://www.mydomain.com/images/s160-d0/photo.jpg

哪个

http://www.mydomain.com/images/s1600-d/photo.jpg

请提出一些解决方案......谢谢:)

2 个答案:

答案 0 :(得分:1)

你可能想要一个正则表达式:

ImageSource = ImageSource.replace(/0(\D*)$/, "0-d$1");

即“匹配0后跟一系列非数字字符到字符串末尾,捕获非数字字符,并将其替换为0-d后跟非数字”。

详细说明:

  • 0是文字(匹配0)。
  • ()定义捕获组
  • \D表示“非数字”(因此, 0-9)。
  • *表示“之前的零件或更多件事”(在本例中为非数字)。
  • $表示“字符串结束”

在替换字符串中,$1指的是捕获组中的文本。

答案 1 :(得分:1)

替换0后跟斜杠。

ImageSource = ImageSource.replace(/0\//, '0-d/')