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

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

带来好运,给我带来好运。工作好了!

但是,现在我有了一个看起来像good_luck_buddy的类。我如何让我的javascript忽略第二个_,给我luck_buddy?

我找到了var field = element。Split (new char [] {'_'}, 2);在c# stackoverflow中回答,但它不起作用。我尝试在jsFiddle…


当前回答

你可以像这样使用正则表达式:

var arr = element.split(/_(.*)/)

您可以使用第二个参数,它指定分割的限制。 即: Var字段=元素。分割(' _ ',1)[1];

其他回答

在解构赋值的帮助下,它可以更易于阅读:

let [first, ...rest] = "good_luck_buddy".split('_')
rest = rest.join('_')

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

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

你好! 我的弦=我的弦。 控制台日志(myString)。

对于像我这样不习惯正则表达式的初学者来说,这个解决方案是有效的:

   var field = "Good_Luck_Buddy";
   var newString = field.slice( field.indexOf("_")+1 );

slice()方法提取字符串的一部分并返回一个新字符串,indexOf()方法返回字符串中指定值第一次出现的位置。

使用字符串replace()方法与一个正则表达式:

Var result = "good_luck_buddy".replace(/.*?_ /”、“); console.log(结果);

这个正则表达式匹配第一个_之前的0个或更多字符,以及_本身。然后将匹配项替换为空字符串。

如果你正在寻找一种更现代的方式来做这件事:

let raw = "good_luck_buddy"

raw.split("_")
    .filter((part, index) => index !== 0)
    .join("_")