2013-07-02 55 views
1

使用子字符串函數我想得到圖像沒有。從字符串,substring得到圖像沒有

我正在應用子字符串下面的屬性。這是返回3在鉻在鉻,但在mozilla它不能正常工作。

問題: 以上「 - >」在此之後我寫了鍍鉻的價值觀,在第三步的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 
+0

Firefox究竟發生了什麼錯誤? – casraf

+0

@ChenAsraf上面的「 - >」之後,我寫了鉻值,在第三步mozilla我得到.jpg而不是3.jpg – anam

回答

1

嘗試,這也

var myUrl = 'http://localhost/final.21/img/img3.jpg'; 
alert(myUrl.substr(myUrl.length - 5).slice(0, -4)); 
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]); 
+0

我太慢了。 – Kiruse

0

使用正則表達式

一個簡單的辦法
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/

+1

Imho這是這裏提出的最不優雅的解決方案。應該使用純粹的子字符串功能去尋找Anna.P提出的解決方案,或者像我的解決方案那樣去尋找純粹的正則表達式。這是兩者的混合,既不快也不易讀。 – dirkk

+0

@dirkk這是適合我的解決方案如果我沒有img1.jpg,而如果我有圖像40.jpg?我發現drikk回答有幫助 – anam

+0

@simmisimmi你也可以用純正則表達式來做這件事。你沒有在你的問題中說明這個文件名可能的格式。你也可以做一個簡單的'([0-9] +)。jpg',它也可以匹配圖片40.jpg。 – dirkk

1

以後,我知道,與"obj.style.backgroundImage"物業,在Mozilla的我是得到url("/final.21/img/img3.jpg");在鉻我得到url(/final.21/img/img3.jpg); ...所以我改變了我的子串方法