String.Match()没有RegEX

时间:2011-10-30 16:36:32

标签: javascript

在下面的代码片段中,我不确定如何将RegEx分配给match(),是否总是需要RegEx?:

---------- ------------匹配

case 'remove':
var rep=o.className.match(' '+c1)?' '+c1:c1;
o.className=o.className.replace(rep,'');
break;

------全 - 代码--------------

function cssjs(a,o,c1,c2){
switch (a){
case 'swap':
if(!domtab.cssjs('check',o,c1)){
o.className.replace(c2,c1)
}else{
o.className.replace(c1,c2);
}
break;
case 'add':
if(!domtab.cssjs('check',o,c1)){
o.className+=o.className?' '+c1:c1;
}
break;
case 'remove':
var rep=o.className.match(' '+c1)?' '+c1:c1;
o.className=o.className.replace(rep,'');
break;
case 'check':
var found=false;
var temparray=o.className.split(' ');
for(var i=0;i<temparray.length;i++){
if(temparray[i]==c1){found=true;}
}

1 个答案:

答案 0 :(得分:5)

将字符串传递给match与将new RegExp(s)的结果传递给它(其中s是字符串)相同。例如,这些完全相同:

a = str.match("foo");
a = str.match(new RegExp("foo"));

来自the standard

  
      
  1. 如果Type(regexp)Object且regexp的[[Class]]内部属性值为“RegExp”,则让rxregexp;
  2.   
  3. 否则,让rx成为一个新的RegExp对象,就像表达式new RegExp( regexp)一样,其中RegExp是具有该名称的标准内置构造函数。
  4.