使用子字符串函数,我想从字符串中获取图像编号
我正在将子字符串应用于下面的属性。这在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/