javascript - 不带 RegEX 的 String.Match()

标签 javascript

在下面的代码片段中,我不确定如何将正则表达式分配给 match(),是否始终需要正则表达式?:

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

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"));

来自the standard :

  1. If Type(regexp) is Object and the value of the [[Class]] internal property of regexp is "RegExp", then let rx be regexp;
  2. Else, let rx be a new RegExp object created as if by the expression new RegExp( regexp) where RegExp is the standard built-in constructor with that name.

关于javascript - 不带 RegEX 的 String.Match(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7946228/

相关文章:

javascript - 使用 anchor + javascript 提交表单 - 不好的做法?

javascript - 获取正文内容的正则表达式

javascript - 类型错误 : Cannot read property 'get' of undefined - Vue-resource and Nuxt

javascript - 将子对象的父对象添加到监听器会导致 Node.js 中的保留循环吗?

javascript - 对内部有数组的对象进行过滤

javascript - 在 JavaScript 中创建时区感知日期

javascript - 无法使用 JavaScript 中的 putImageData 更新 HTML5 Canvas 像素颜色

javascript - 如何根据服务器时间设置网站重定向?

javascript - 如何在jquery中循环表并读取span值

javascript - React 中的内联背景图像