Javascript RegExp测试类名

时间:2015-01-30 07:59:56

标签: javascript regex

我必须在我正在使用的事件委托方法中测试不同节点的类名:

我正在使用的测试案例是

   function clickHandler(e){
        var evt = e || window.event;
        target = evt.target || evt.srcElement, 
        cls = target.className,id = target.id;

       if(/\bcell\b/i.test(cls)){
          //perform some action is node having classname cell is clicked 
       }
   }

但此特定测试与类名为.cell的节点以及.cell-validation-text匹配。

以上测试对这两个节点都返回true。我如何修改我的regExp,以便我的上述测试仅返回true 具有.cell 的节点, false用于.cell-validation文本 < / p>

2 个答案:

答案 0 :(得分:3)

/\bcell(\s|$)/

\s匹配任何空格字符

$匹配字符串

的结尾

编辑:假设您不想匹配“xxx-cell”:

/(^|\s)cell(\s|$)/

^匹配字符串的开头

答案 1 :(得分:0)

只需使用锚点和替换运算符|

function clickHandler(e){
    var evt = e || window.event,
    target = evt.target || evt.srcElement, 
    cls = target.className,id = target.id;
    if(/\bcell(\s|$)/i.test(cls)){
       //perform some action is node having classname cell is clicked 
    }
}

但如果你做了类似

的事情会更好
if(cls.split(" ").indexOf("cell") > -1){

}