0

我有以下一组字符串

big-div button-green
big-div button-red
big-div button-yellow

我想得到以下结果

green
red
yellow

我设法做到了这一点,/\sbutton-[^\s]*/gi但与整个字符串匹配,如button-yellow

提前致谢!

4

3 回答 3

1

放置一个捕获组[^\s]*,您可以将其作为第一个捕获组访问。

或者,我会把它写成......

var match = (str.match(/\sbutton-(\S*)/gi) || [])[1];

这会给你匹配,或者undefined如果它不能匹配任何东西。

如果str也是一个类,我会交换边界(?:^|\s)(?:$|\s)或以其他方式匹配\s并用空格包装匹配的字符串。

于 2012-12-10T02:56:42.083 回答
1
str.match(/\sbutton-([^\s]*)/i)[1]
于 2012-12-10T02:57:09.020 回答
1

答案就在标题中:只需创建一个捕获组:

/\sbutton([^\s]+)$/i

并获取返回的匹配数组的第一个元素,该元素仅包含您感兴趣的字符

于 2012-12-10T02:57:36.710 回答