一串没有RegEX的Match()

String.Match() without RegEX

本文关键字:RegEX Match 一串      更新时间:2023-09-26

在下面的片段中,我不确定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;}
}

将字符串传递到match中与将new RegExp(s)的结果传递到其中相同(其中s是字符串(。例如,它们做的事情完全相同:

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

来自标准:

  1. 如果Type(regexp)Object,并且正则表达式的[[Class]]内部属性的值是"regexp",则设rxregexp
  2. 否则,让rx是一个新的RegExp对象,就像由表达式new RegExp( regexp)创建的一样,其中RegExp是具有该名称的标准内置构造函数