我有以下字符串
big-div button-green
big-div button-red
big-div button-yellow
我希望得到以下结果
green
red
yellow
我设法得到这个/\sbutton-[^\s]*/gi
,但匹配整个字符串,如button-yellow
提前致谢!
答案 0 :(得分:1)
将一个捕获组放在[^\s]*
周围,您可以将其作为第一个捕获组进行访问。
或者,我会把它写成......
var match = (str.match(/\sbutton-(\S*)/gi) || [])[1];
这会为您提供匹配,如果匹配不匹配,则为undefined
。
如果str
也是一个类,我会交换(?:^|\s)
和(?:$|\s)
的边界,或者在\s
上进行匹配,并将匹配的字符串换成空格。< / p>
答案 1 :(得分:1)
str.match(/\sbutton-([^\s]*)/i)[1]
答案 2 :(得分:1)
答案在标题中:只需创建一个捕获组:
/\sbutton([^\s]+)$/i
并获取返回的matches数组的第一个元素,它只包含那些你感兴趣的字符