在我的代码中,我根据 _
拆分了一个字符串并抓取数组中的第二项。
var element = $(this).attr('class');
var field = element.split('_')[1];
获取 good_luck
并为我提供 luck
。效果很好!
但是,现在我有一个看起来像 good_luck_buddy
的类。如何让我的 javascript 忽略第二个 _
并给我 luck_buddy
?
我在 c# stackoverflow 答案中找到了这个 var field = element.split(new char [] {'_'}, 2);
但它不起作用。我在 jsFiddle 上试了一下...
最佳答案
'good_luck_buddy'.split(/_(.*)/s)
['good', 'luck_buddy', ''] // ignore the third element
它们被定义为
If
separator
contains capturing parentheses, matched results are returned in the array.
所以在这种情况下,我们希望在 _.*
处进行拆分(即拆分分隔符是一个以 _
开头的子字符串)但也要让结果包含我们的分隔符的某些部分(即 _
之后的 everything)。
在这个例子中,我们的分隔符(匹配 _(.*)
)是 _luck_buddy
并且捕获的组(在分隔符内)是 lucky_buddy
.如果没有捕获括号,则 luck_buddy
(匹配 .*
)不会像简单的 split
一样包含在结果数组中结果中不包含分隔符。
我们使用 s
regex flag使 .
也匹配换行符 (\n
) 字符,否则它只会拆分到第一个换行符。
关于javascript - 仅在指定字符的第一个实例上拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4607745/