我试图找到脚本的特定类模式。 但我的正则表达式调用未能找到所有事件。 相反,它只返回第一个。
string = "col-xs-1 col-md-middle col-lg-middle"
s = /col(?:-(..)-|-)(?:middle|top|bottom)/g.exec(string);
console.log(s)
output -> ["col-md-middle", "md"]
有谁知道我在这里做错了什么?
答案 0 :(得分:2)
使用string.match
功能。具有全局正则表达式的exec
意味着在循环中使用,因为它仍将检索所有匹配的子表达式。
> str.match(/col(?:-(..)-|-)(?:middle|top|bottom)/g)
[ 'col-md-middle', 'col-lg-middle' ]
如果您想获得匹配以及捕获,请使用以下内容。
> var re = /col(?:-(..)-|-)(?:middle|top|bottom)/g;
undefined
> var m;
undefined
> var a = [];
undefined
> while ((m = re.exec(str)) != null) {
... a.push(m[0])
... a.push(m[1])
... }
4
> a
[ 'col-md-middle',
'md',
'col-lg-middle',
'lg' ]
答案 1 :(得分:0)
var t = this
s = t.attr('class').match(/(col(-(..)-|-)(middle|top|bottom))/g).join(' ').split('-');
$(s).each(function(k,v){
if (k%2!==0) {
// here i get the string after col-
}
});
这是我的解决方案, 稍微小一些,我喜欢避免同时,他们只是喜欢无限循环自己