javascript - 如何使用字符串文字生成正则表达式?

标签 javascript regex ecmascript-6

我正在尝试在 ES6 中使用字符串文字创建正则表达式,但我的解决方案失败了:

var prefix = 'Hello';

var re = /`${prefix}\\s(\\w+)\\s(\\w+)`/;
//var re = /Hello\s(\w+)\s(\w+)/; // this works

var str = 'Hello John Smith';
var newstr = str.replace(re, '$2, $1');
console.log(newstr);

最佳答案

您需要使用新的正则表达式

var prefix = 'Hello';
var reStr = `${prefix}\\s(\\w+)\\s(\\w+)`;
var re = new RegExp(reStr,'g')

var str = 'Hello John Smith';
var newstr = str.replace(re, '$2, $1');
console.log(newstr);

关于javascript - 如何使用字符串文字生成正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51664713/

相关文章:

javascript - 如何制作简单的搜索引擎?

javascript - 如何在 <html :select> when the page loads? 中显示所选值

javascript - 在多个条件下过滤 javascript 数组

regex - powershell正则表达式匹配特定字符串,不带起始特殊字符

asp.net - ASP.NET 中用于十进制验证的正则表达式

javascript - 为什么从文件导入 * 执行代码?

javascript - JavaScript 中扩展语法的意外行为

javascript - 通过 .length 检查对象是否存在

javascript - 使用jquery从ul列表中提取 anchor 标记链接

regex - 模糊正则表达式