获取部分类名并使用regex和jQuery定义变量

时间:2012-07-08 00:02:43

标签: jquery regex

http://jsfiddle.net/cYmxB/

$('.change').click(function() {
    $('.link').each(function(e) {
        var color = this.className.match(/color-\w+/gi);
        alert(color);
    });
});​

我基本上喜欢这样来提醒\w+找到的正则表达式,而不是整个字符串。我怎么能这样做?

此外,如何在不删除此实例后的正则表达式的情况下删除color-

2 个答案:

答案 0 :(得分:1)

使用捕获组获取颜色:

$('.change').click(function() {
    $('.link').each(function(e) {
        var pattern = /color-(\w+)/gi;
        var match = pattern.exec(this.className);
        var color = match[1];
        alert(color);
    });
});​

http://jsfiddle.net/cYmxB/1/

答案 1 :(得分:1)

您可以使用javascript正则表达式循环匹配,这将返回数组中的组。您还可以将replace功能与组后退参考一起使用以删除颜色 -

$('.change').click(function() {
    $('.link').each(function(e) {
        // find regex matching groups
        var regex = /color-(\w+)/gi;
        var match;
        while (match = regex.exec(this.className)) {
            alert(match[1]);
        }
        // remove color-
        this.className = this.className.replace(/color-(\w+)/gi, "$1");
    });
});

http://jsfiddle.net/cYmxB/2/