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

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 に答える
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 に答える