优化Regex以删除类

时间:2014-11-12 19:31:38

标签: javascript regex

我有这个函数用于从javascript中的元素中删除类。

var reg = new RegExp(cls+'(\\s|$)');
this.el.className = this.el.className.replace(reg, '').replace(/\s+$/g, '');

说你在元素上有三个类

show hide color

前两个与之后的空格一起被删除,第三个被删除,但由于之后没有空格,它会在它之前留下空格。然后字符串末尾有一个额外的空格。所以我添加了第二个替换函数来摆脱它,但它只在一种情况下使用

问题:我如何摆脱第二个替换功能并让一个正则表达式做我想要的。谢谢!

1 个答案:

答案 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 $
 )