1

使用子字符串函数我想获得图像编号。从字符串,

我正在将子字符串应用于下面的属性。这在 chrome 中最后返回 3,但在 mozilla 中它不能正常工作。

问题: 在上面的“-->”之后,我写了 chrome 值,在 mozilla 中第三步我得到 .jpg 而不是 3.jpg

alert("obj.back is "+obj.style.backgroundImage);-->url(http://localhost/final.21/img/img3.jpg);
    origImg = obj.style.backgroundImage.split(")")[0];
    alert('origImg is'+origImg);  -->>url(http://localhost/final.21/img/img3.jpg
    alert('after length '+origImg.substring(origImg.length-5)); -->3.jpg
    origImg = origImg.substring(origImg.length-5).split(".")[0];
    alert('origImg is'+origImg);  --> 3
4

4 回答 4

1

也试试这个

var myUrl = 'http://localhost/final.21/img/img3.jpg';
alert(myUrl.substr(myUrl.length - 5).slice(0, -4));
于 2013-07-02T07:56:01.240 回答
1

后来我知道使用"obj.style.backgroundImage"Property ,在 Mozilla 中,我url("/final.21/img/img3.jpg"); 在 chrome 中得到了我得到的地方url(/final.21/img/img3.jpg);......所以我改变了我的 substring 方法

于 2013-07-02T11:03:12.100 回答
0

我会提出一个使用 RegEx 的更具可读性的解决方案。您的解决方案是相当静态的,如果发生变化(即您有类似 img33.jpg 的内容),它将中断。此外,正如我已经提到的,我会说它更具可读性,因为它实际上表达了您正在尝试做的事情。

var url = "http://localhost/final.21/img/img3.jpg)";
origImg = url.match("img([0-9]+).jpg");
alert('origImg is '+origImg[1]);
于 2013-07-02T07:52:53.860 回答
0

使用 RegEx 的更简单的解决方案

var str = "http://localhost/final.21/img/img3.jpg";
str = str.substring(str.lastIndexOf("/") + 1);
alert(str.match(/[0-9]+/)[0]);

演示:http: //jsfiddle.net/drF8y/

于 2013-07-02T07:55:31.807 回答