Javascript nth出现一个字符串并提取子字符串

时间:2016-04-05 07:59:18

标签: javascript string

假设我有一个像这样的字符串

var str = 'E2*2001/116*0364*31'

我想要的是在字符串中找到第3个*,并从开始打印到它。

结果将是E2*2001/116*0364*

我尝试了类似jsfiddle的内容。

对应代码

var str = 'E2*2001/116*0364*31',
delimiter = '*',
start = 0,
var pos=getPosition(str, *, 3);
alert(pos);
tokens = str.substring(start, getPosition(str,*,3)),
result = tokens;


document.body.innerHTML = result;


function getPosition(str, m, i) {
   return str.split(m, i).join(m).length;
}

但无法获得输出。

任何人都可以协助。

3 个答案:

答案 0 :(得分:2)

试试这个。

str.split('*').slice(0,3).join('*') + '*';

答案 1 :(得分:1)

^([\w\-] )+$

答案 2 :(得分:0)

String#replace的解决方案:

var string = 'E2*2001/116*0364*31'.replace(/([^*]+\*){3}/, '');
document.write('<pre>' + JSON.stringify(string, 0, 4) + '</pre>');