【发布时间】:2014-11-12 19:31:37
【问题描述】:
我有这个函数用来从 javascript 中的元素中删除类。
var reg = new RegExp(cls+'(\\s|$)');
this.el.className = this.el.className.replace(reg, '').replace(/\s+$/g, '');
假设你在一个元素上有三个类
show hide color
前两个和后面的空格一起被删除,第三个被删除,但由于它后面没有空格,所以它留下了前面的空格。然后字符串在末尾有一个额外的空格。所以我添加了第二个替换功能来摆脱它,但它只在一种情况下使用
问题:我如何摆脱第二个替换功能并让一个正则表达式做我想做的事。谢谢!
【问题讨论】:
-
你想做什么,删除所有类(
element.className = '';/element.setAttribute('class','');)?或者删除一个特定的类 (el.classList.remove('color');)? -
对不起,我正在尝试删除某个类(因此正则表达式中的 cls 变量)。 classList 不可靠,所以我不使用它。
-
正则表达式是正确的。唯一的原因可能是因为
show之前有一个空格或color之后有两个空格 -
@vks 是的,它正在按我的需要工作,但我正试图摆脱调用替换函数两次的需要。
-
如果字符串是 jsut
show hide color,则该空格不存在。还有其他东西你丢失了
标签: javascript regex