1

(请只使用纯javascript!)

我想创建一个辅助函数,classdiv具有多个类的 a 中删除一个。我想象一个功能如下:

function remove_class(div, klass) {
    div.className = div.className.replace( /(?:^|\s)active(?!\S)/ , '' );
}

这里删除的类是active. 但是,我怎样才能删除任何类名,即。klass一个作为变量传递?

4

3 回答 3

4

使用RegExp 构造函数而不是 RegExp 文字。构造函数将字符串作为其第一个参数,因此您可以按照自己喜欢的方式构建它。

function remove_class(div, klass) {
    div.className = div.className.replace( new RegExp('(?:^|\\s)' + klass + '(?!\\S)'), '' );
}

请注意,使用构造函数时不需要分隔符(前导斜杠和尾随斜杠)。

于 2013-09-30T01:27:27.437 回答
1

代替使用 /regexp/ 语法,您可以使用 RegExp: 类似这样的东西:

function remove_class(div, klass) {
    var regex = new RegExp('\/(?:^|\\s)' + klass + '(?!\\S)\/');
    div.className = div.className.replace( regex , '' );
}
于 2013-09-30T01:29:52.123 回答
1

您可以像这样创建正则表达式:

var re = new RegExp("regex","g");

查看https://stackoverflow.com/a/494046/1778812

于 2013-09-30T01:33:32.017 回答