在下面的代码片段中,我不确定如何将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;}
}
答案 0 :(得分:5)
将字符串传递给match
与将new RegExp(s)
的结果传递给它(其中s
是字符串)相同。例如,这些完全相同:
a = str.match("foo");
a = str.match(new RegExp("foo"));
来自the standard:
- 如果
Type(regexp)
为Object
且regexp的[[Class]]
内部属性值为“RegExp”,则让rx
为regexp
;- 否则,让
醇>rx
成为一个新的RegExp
对象,就像表达式new RegExp( regexp)
一样,其中RegExp
是具有该名称的标准内置构造函数。