javascript - 将字符串转换为正则表达式时如何保留\

标签 javascript json regex

我有一些正则表达式通过 JSON 对象传给我,如下所示:

{
  config: { 
    regEx: "/^$/"
  }
}

我正在尝试将上面的字符串转换为正则表达式,如下所示:

const re = new RegExp(config.regEx);

这可行,但是 RegExp 〜有帮助〜转义 / 字符并返回 //^$// (不是 /^$/)

如何在不转义 / 的情况下最好地将字符串转换为正则表达式?

编辑:我无法控制返回的原始字符串。就是这样。

最佳答案

只需删除正则表达式周围的 /,如下所示:"/^$/" 变为 "^$"

当不使用正则表达式构造函数时,正则表达式周围的 / 只是告诉 javascript (v8) 它是正则表达式的方法,与 " 的方式相同告诉 javascript 它是一个字符串。(我明白为什么这可能会让您感到困惑,因为 /^$/.toString() 结果是 "/^$/")

要从字符串中删除 /,请执行以下操作:

config.regEx.replace(/(^\/)|(\/$)/g, '')

关于javascript - 将字符串转换为正则表达式时如何保留\,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57564413/

相关文章:

javascript - Jquery Ajax 不适用于 Phonegap

javascript - 跨浏览器和屏幕尺寸映射点击位置

javascript - SAP UI5 : Merge/join two tables

javascript - 解析包含带函数的序列化对象的 HTTP 响应

c# - JSON.NET 中的条件输出处理

Python - 在字符串中定位正则表达式匹配的位置?

javascript - Highcharts 系列不显示数据和渲染图表

Javascript:查找值在 JSON 中出现的次数

javascript - 两个或多个点的正则表达式

.net - 正则表达式:匹配重复数字,忽略非数字