我有这个函数用于从javascript中的元素中删除类。
var reg = new RegExp(cls+'(\\s|$)');
this.el.className = this.el.className.replace(reg, '').replace(/\s+$/g, '');
说你在元素上有三个类
show hide color
前两个与之后的空格一起被删除,第三个被删除,但由于之后没有空格,它会在它之前留下空格。然后字符串末尾有一个额外的空格。所以我添加了第二个替换函数来摆脱它,但它只在一种情况下使用
问题:我如何摆脱第二个替换功能并让一个正则表达式做我想要的。谢谢!
答案 0 :(得分:0)
也许你可以处理所有案件。
# (?:\s(?:show|hide|color)|(?:show|hide|color)\s|\b(?:show|hide|color)\b)
(?:
\s
(?: show | hide | color )
|
(?: show | hide | color )
\s
|
\b # Or ^
(?: show | hide | color )
\b # Or $
)