我未修改的 HTML 看起来像这样:
<body class="home bc-hide-1bc-hide-2">
我的 JS 看起来像这样:
var c = $("body").attr("class").replace(/(bc-hide-\d)/,/$& /);
$("body").attr("class", c);
目标是让我的 HTML 看起来像这样(注意 bc-hide-1 和 bc-hide-2 之间的空格):
<body class="home bc-hide-1 bc-hide-2">
使用上面的 JS,我的输出实际上在 bc-hide-# 的每个实例前面都有一个/(如下所示):
<body class="home /bc-hide-1 /bc-hide-2">
我不必对正则表达式做太多事情,并且我一直在浏览文档,但我只是找不到阻止该/输出的内容。非常感谢任何帮助!
谢谢!
最佳答案
回答实际问题:
Why am I getting a / in my regex output?
因为替换中有两个斜杠:/$&/
。
替换应该是字符串,而不是正则表达式,/$&/.toString()
(表达式的字符串表示形式)是 "/$&/"
。
只需使用'$&'
。
但我同意 Evan 的观点,您应该修复生成 HTML 的代码。
关于javascript - 为什么我的正则表达式输出中会出现 a/?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10747970/