2011-10-09 25 views
3

我想看看我是否可以從字符串中刪除一些字符以下腳本創建:jQuery的/ JS字符串中替換文本

$(".fileName").text() 

所創建的將是這樣的字符串:

"bottom.gif (0.43KB)" 

我希望字符串是:「bottom.gif」

問題: 映像名稱可以是任何東西。圖像的大小也會變化。我有工作,唯一不變的是:圖像名稱 後 空間「(下稱」文件大小 之前「)」後的文件大小

任何幫助將是巨大的!

回答

3
var text = $(".fileName").text().split(' (')[0]; 

Example here

它將該文本字符串到一個數組無處不在此字符串 '(' 發生:

text[0] = "bottom.gif" 
text[1] = "0.43KB)" 

,你只需要文字[0]使用

note:如果'('不存在,它將返回整個字符串:

var text = $(".fileName").text().split('_')[0]; 

text[0]="bottom.gif (0.43KB)" 
text[1] error 

因此可以安全地將它與[0]一起使用,並且不檢查值是否爲空。

+0

這個工作,我會選擇它作爲我的回答的一點點,但可以請你解釋的邏輯。我想了解它。 –

+0

'split'函數使用參數''(''作爲分隔符分割字符串,並返回一個包含子字符串的數組..',然後你想選擇該數組的第一項,因爲它是文件名。 「.fileName」).text()'將class =「fileName」的HTML元素的文本給你,然後你對它進行分割......這可能是用多行寫的,但是它寫在一行中保持簡單。 –

3

這是很簡單的,可與任何文件名工作:

var text = "bottom.gif (0.43KB)"; 
text = text.substring(0, text.lastIndexOf('(')-1); 

experimentX的解決方案將失敗一些文件名。例如:「底部(這是問題).gif(0.43KB)」。

1

這將這樣的伎倆,正則表達式

var img_name = "bottom.gif (0.43KB)".split(/[ ]\([0-9a-z\.]{0,}\)/gi)[0]