javascript - 为什么我的正则表达式输出中会出现 a/?

标签 javascript jquery regex

我未修改的 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/

相关文章:

javascript - 有没有办法在 Google Maps API 中使用 3D Views 或 3D Perspective?

javascript - 在 JavaScript 中自动释义句子

javascript - 在 Node.js 应用程序中遍历 '__dirname'

javascript - 在导航菜单中突出显示当前页面?

javascript - 在数据表中隐藏动态创建的 DIV

javascript - 如何使用 .not() 隐藏除被单击的 div 之外的所有 div

c++ - QRegExp 不符合预期

javascript - 带点的正则表达式 Javascript 字母,不在开头或结尾

javascript - 在javascript中使用标签有什么意义(标签: stuff here) outside switches?

javascript - 标记不会出现在 Google map 上