已为小白,啥都不懂 2022-01-09 11:44 采纳率: 98%
浏览 41
已结题

如何在正则表达式中使用变量?

我想String.replaceAll()在 JavaScript 中创建一个方法,我认为使用正则表达式是最简洁的方法。但是,我不知道如何将变量传递给正则表达式。我已经可以这样做了,这将替换"B"with 的所有实例"A"。

"ABABAB".replace(/B/g, "A");
但我想做这样的事情

String.prototype.replaceAll = function(replaceThis, withThis) {
this.replace(/replaceThis/g, withThis);
};

但显然这只会替换文本"replaceThis" 那么我如何将此变量传递给我的正则表达式字符串?

  • 写回答

1条回答 默认 最新

  • 几何心凉 2022年度博客之星前端领域TOP 1 2022-01-09 12:11
    关注

    /regex\d/g您可以构造一个新的RegExp对象,而不使用语法:
    var replace = "regex\d";
    var re = new RegExp(replace,"g");

    您可以通过这种方式动态创建正则表达式对象。然后你会做:
    "mystring1".replace(re, "newstring");

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月17日
  • 已采纳回答 1月9日
  • 创建了问题 1月9日

悬赏问题

  • ¥15 Pycharm中程序直接运行可以但进入调试报错
  • ¥15 MATLAB动图问题
  • ¥15 有段代码不知道怎么理解,const isToken = (config.headers || {}).isToken === false
  • ¥15 我的显卡支持CUDA最高版本是12.3,这个版本也支持VS 2022 17.0这种情况下如果我想下载CUDA11.8,需要下载旧版本的VS2022吗
  • ¥100 采用栈和深度优先算法取消graphics库采用其他方式显示路径打印显示路径取消graphics库
  • ¥15 pointnet2包安装
  • ¥20 射频功率问题,解答者有酬谢!
  • ¥80 构建降雨和积水的预测模型
  • ¥15 #Qt Transform setTransform()在鼠标拖动移动视角是一致在原地不动,无法变换视角(细微观察似乎视图有在原地抖动),无法变换视角(细微观察似乎视图有在原地抖动)
  • ¥50 如何利用无人机拍摄的数码照片测量鸟卵的长短径