正则表达式替换的比我想要的更多
Regex replacing more than I want
我想从body
元素中删除一个以demo-XXX
开头的类,其中xxx
可以是任何字符并且没有固定长度。
所以我可以在身体里有这样的东西
<body classs="bye demo-hello water">
我像这样使用这个正则表达式/'b's?demo-.*'b/g
:
$("body")[0].className = $("body")[0].className.replace(/'b's?demo-.*'b/g, '');
但它也删除了demo-XXX
之后的所有类,例如water
:
<body classs="bye">
你可以按照@nhahtdh所说的方式简单地做到这一点
$('body').attr('class', function(_, cls){
return cls.split(/'s+/).filter(function(x){ // split
return x.indexOf("demo-") !== 0; // filter out unwanted values
}).join(" "); // join the array and return it
});
如果你想要正则表达式解决方案,你可以做
$('body').attr('class', function(_, cls){
return cls.replace(/'bdemo-'S+/g,"");
});
您需要
排除空格 usintg ^'s
并查找 1 个或多个字符,因此请使用 +
而不是*
$("body")[0].className =$("body")[0].className.replace(/'b's?demo-[^'s]+'b/g,'');
演示
'b's?demo-[a-zA-Z0-9]+'b
使用这个。.
将在'b
之前消耗掉所有.
相关文章:
- 在多行图表中,在每一行的末尾,我想要一个小圆圈和使用d3.js的端点值
- 我想要相同的函数以两种方式反应
- 如何在javascript中创建一个空的2d数组?下面是我想要创建的一个示例
- 如何用javascript发送多个文件没有jQuery我想要每个文件一个进度条
- 我想要一个类似于网站 https://onlycoin.com/ 的jQuery鼠标滚动动画效果
- 我想要“鼠标滚轮事件延迟”
- 如何格式化我返回的url,使其符合我想要的路由
- 如何使用facet指定我想要的字段
- json_encode($myVar);正在给出地图,我想要一个字符串数组
- 我想要输入类型<输入>在javascript中
- Javascript:我可以't找到正确的方式来表达布尔“;如果“;以得到我想要的结果
- 如何用javascript从数组中删除项?我想要一个类似拉的东西来做与推相反的事情
- 正则表达式对我想要做的事情是正确的吗?
- Javascript给定了一个数字,我想要所有可能的组合和元素数组
- 为什么获胜't我的javascript返回我想要的值
- 我想要获取文件输入并将其保存到本地路径的Javascript
- .remove() 只删除内部 HTML,而不是像我想要的那样删除整个标签
- 我想要一个警报框,在倒数计时器中使用 javascript 的 10 分钟
- 正则表达式替换的比我想要的更多
- 为什么我需要“$$$"(三美元)如果我想要“$$"(两美元)作为Java中的替换字符串