Javascript第n次出现一个字符串,并提取子字符串

Javascript nth occurance of a string and extract the sub string upto that

本文关键字:字符串 一个 提取 Javascript      更新时间:2024-01-22

假设我有一个类似的字符串

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

我想要的是在字符串中找到第三次出现的*,并从一开始就打印出来。

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

我试过这样的东西。

对应代码

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;
}

但无法获得输出。

有人能帮忙吗。

试试这个。

str.split('*').slice(0,3).join('*') + '*';
var str = 'E2*2001/116*0364*31';
console.log(str.match(/^([^*]*'*){3}/)[0]);              // E2*2001/116*0364*
console.log(str.match(/^([^*]*'*){3}/)[0].slice(0, -1)); // E2*2001/116*0364

具有String#replace:的解决方案

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