子字符串以获取图像编号



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

我正在将子字符串应用于下面的属性。这在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

也试试

var myUrl = 'http://localhost/final.21/img/img3.jpg';
alert(myUrl.substr(myUrl.length - 5).slice(0, -4));

后来我知道,使用"obj.style.backgroundImage"属性,在Mozilla中,我得到了url("/final.21/img/img3.jpg");,而在chrome中,我获得了url(/final.21/img/img3.jpg);。。。所以我更改了子字符串方法

我建议使用RegEx提供一个可读性更强的解决方案。您的解决方案是静态的,如果有什么变化(例如,您有类似img33.jpg的东西),它就会崩溃。此外,正如我已经提到的,我想说它更可读,因为它实际上表达了你想要做的事情

var url = "http://localhost/final.21/img/img3.jpg)";
origImg = url.match("img([0-9]+).jpg");
alert('origImg is '+origImg[1]);

使用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/

最新更新