javascript - 将字符串作为正则表达式模式传递给 String.prototype.replace

标签 javascript node.js regex replace

如何将字符串转换为与 string.replace 原型(prototype)一起使用的正则表达式模式?

预期的解决方案:

var regex = "/(\w+)_(\w+)/i";
var pattern = new RegExp(regex);
console.log("some_name".replace(pattern, "$1-$2"));
// expected output: some-name
// output: some_name

[编辑1]

正则表达式模式似乎是上面的代码无法按预期工作的部分原因,但是,由于某种原因,传递与正则表达式相同的模式,如 King Stone 概述的那样。

最佳答案

var pattern = /(\w+)_(\w+)/i;
// var pattern = new RegExp(regex);
console.log("some_name".replace(pattern, "$1-$2"));

输出:

some-name

关于javascript - 将字符串作为正则表达式模式传递给 String.prototype.replace,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59216924/

相关文章:

c# - 有效文件名的正则表达式模式

javascript - 允许访客和站点成员使用 ajax、php/pdo、css、html 查看谁在线/登录

javascript - 使用 jQuery 从行中提取值

javascript - 通过 Javascript 更改 CSS 关键帧

node.js - 如何将上下文 Node 添加到 puppeteer 中的 xpath 查询?

regex - Bash 正则表达式——似乎无法匹配任何\s\S\d\D\w\W 等

javascript - FullCalendar 自定义按钮图标未显示

javascript - 连接到 Mongoose 时帖子不起作用

c++ - cv::createLineSegmentDetector() 函数的 Opencv4nodejs 插件崩溃。异常只能被 catch(...) 捕获。如何调试异常类型?

php - 在 MySQL 数据库中执行 REGEXP 查找和替换的最快方法是什么?