0

http://jsfiddle.net/cYmxB/

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

我基本上希望这样来提醒使用\w+而不是整个字符串找到的正则表达式。我怎样才能做到这一点?

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

4

2 回答 2

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/

于 2012-07-08T00:21:21.437 回答
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/

于 2012-07-08T00:31:23.987 回答