2012-05-10 26 views
0

下劃線和點之間的文本。如果我有一個像下面的字符串:如何獲得在javascript

1603202_15.jpg 

我想提取_.之間的文本。請注意,該字符串可以包含任意數量的下劃線,但其中只有一個點。

回答

1

簡單的字符串操作(假設在延長無_):

var result = str.substring(str.lastIndexOf('_') + 1, str.lastIndexOf('.')); 

這是假設你想要得到的.前的最後_之間的字符串(您也可以使用str.indexOf('.') BTW)。如果您想獲取第一個_之間的字符串,則只需使用str.indexOf('_')

參考substringlastIndexOf

+0

工作第一次嘗試謝謝 –

0
var res = '1603202_15.jpg'.match(/_(\d+)\./)​​​​​​​​​; 
console.log(res[1]);​ 

http://jsfiddle.net/zerkms/cpQR3/

PS:你需要檢查,如果res不是null你訪問它的第二個元素

PPS之前:如果有可能什麼,不僅僅是一個數字,然後使用

var res = '1603202_15.jpg'.match(/_([^._]+)\./)​​​​​​​​​; 
console.log(res[1]);​ 
+0

將'^'添加到您的正則表達式的「不」 –

+0

@Michael Sazonov:oops,只是一個錯字,而代替'\ d',謝謝 – zerkms

0
var result = txt.match(/_([a-zA-Z0-9+)\./)[ 1 ] 
0
var str = "123_456_789.jpg"; 
var value = str.substring(str.lastIndexOf("_") + 1 , str.indexOf(".")); 
0
var input='1603202_15.jpg'; 
var regex=/\_.*\./; 
var result=regex.exec(input); 

會給你_15。然後刪除_和。獲取內部字符串。