仅在指定字符的第一个实例上拆分字符串

2022-08-29 23:29:14

在我的代码中,我基于并抓取数组中的第二项来拆分字符串。_

var element = $(this).attr('class');
var field = element.split('_')[1];

接受并向我提供 .效果很好!good_luckluck

但是,现在我有一个看起来像.我如何让我的javascript忽略第二个并给我?good_luck_buddy_luck_buddy

我在c#堆栈溢出答案中发现了这一点,但它不起作用。我在jsFiddle上尝试了一遍...var field = element.split(new char [] {'_'}, 2);


答案 1

使用捕获括号

'good_luck_buddy'.split(/_(.*)/s)
['good', 'luck_buddy', ''] // ignore the third element

它们被定义为

如果包含捕获括号,则在数组中返回匹配的结果。separator

因此,在这种情况下,我们希望拆分为(即拆分分隔符是以 开头的子字符串),但也要让结果包含分隔符的某些部分(即之后的所有内容)。_.*__

在这个例子中,我们的分隔符(匹配)是,捕获的组(在分隔符内)是 。如果没有捕获括号,(匹配 )将不会包含在结果数组中,因为简单的情况是分隔符不包含在结果中。_(.*)_luck_buddylucky_buddyluck_buddy.*split

我们使用 s 正则表达式标志来匹配换行符 () 字符,否则它只会拆分为第一个换行符。.\n


答案 2

您需要正则表达式和数组来做什么?

myString = myString.substring(myString.indexOf('_')+1)

var myString= "hello_there_how_are_you"
myString = myString.substring(myString.indexOf('_')+1)
console.log(myString)