2013-02-20 66 views
0

的THRID一次出現的字符串我有這個字符串:拆分從端JS

01-08-2011_11-08-20113,我的身份證,我的名稱 - 1.tif

我想從字符串末尾(「 - 」)的第三個字符處開始分割,因爲字符串的長度可能會改變。這就是我想要的是:

我的身份證,我的名稱 - 1.tif

我不想使用slicepop。我只想使用split,lastindexof,substringindexof

有什麼建議嗎?

+0

那麼,你有什麼嘗試? – Achrome 2013-02-20 13:41:18

+2

'split','slice'和'join'將在1行內完成。你爲什麼不想用它? – Jon 2013-02-20 13:41:45

回答

2
myStr.replace(/^.*-([^-]+-[^-]+-[^-]+)$/, '$1') 

這抓住了最後三個破折號之間的一切,只用這部分替換整個字符串。

+0

我比我更喜歡這個答案:) – Biketire 2013-02-20 13:51:23

+0

我最終得到了靈魂。我用這個type = name [name.size() - 1]; s1 = name [name.size() - 2]; sIdNo = name [name.size() - 3];獲取字符串中的最後三個數組元素 – user1989497 2013-02-22 12:16:59

0

這段代碼是基於假設:

var s = "01-08-2011_11-08-20113-My Id-MY Name-1.tif"; 
var split_s = s.split("-"); 
/* 
0. 01 
1. 08 
2. 2011_11 
3. 08 
4. 20113 
5. My Id 
6. My Name 
7. 1.tif 
*/ 
var result = split_s[5] + "-" + split_s[6] + "-" + split_s[7]; // assuming that the first 4 stripes (0,1,2,3) are used for the date. 
0

我敢肯定有更好的方法來做到這一點 - 因爲我很新的JS,但下面不工作。這是基於您的請求不使用拼接和流行音樂。

var input = "01-08-2011_11-08-20113-My Id-MY Name-1.tif"; 
var sc = input.split("-"); 
var r1 = sc[sc.length-1] 
var r2 = sc[sc.length-2] 
var r3 = sc[sc.length-3] 
var rtn = [r3,r2,r1].join("-") 
alert (rtn) //returns: My Id-MY Name-1.tif