2013-02-20 33 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