javascript - 从正则表达式的字面表示法中删除反斜杠

标签 javascript regex

我需要从用户输入字符串创建一个正则表达式。这是我的代码。我输入了 id 'regex'。

<input id='regex'/>

这是我的 js 代码。

var regex = $('#regex').val();
regexp = new RegExp(regex);

testString = "foo is bar";

alert(testString.replace(regexp, ''));

但是,如果我添加 //g 作为示例来删除字符串中的空格,则它不起作用。我将其作为正则表达式

/\/ \/g/

有没有办法将其转换为与我的字符串完全一样的正则表达式?

最佳答案

如果用户将 / 放在模式的每一侧,后跟单词字符和右侧字符串的末尾,则在传递给 new RegExp 之前解析它们>,并将单词字符作为第二个参数传递:

$('#regex').on('change', () => {
  const input = $('#regex').val();
  const match = input.match(/^\/(.*)\/(\w+)$/);
  const pattern = match
    ? new RegExp(match[1], match[2])
    : new RegExp(input);
  console.log(pattern);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id='regex'/>

关于javascript - 从正则表达式的字面表示法中删除反斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59133627/

相关文章:

javascript - 多维和关联数组正确语法

regex - 使用正则表达式捕获可选的第二组数字(非重复)

regex - Raku Regex 捕获和修改 LFM 代码块

JavaScript/jQuery 比较数组中的项目

javascript - 使用注入(inject)加载器模拟 Vue 类组件方法

javascript - pdf.js 中的错误 : Unknown action from worker: undefined at Worker. MessageHandler._onComObjOnMessage

javascript - 如何根据div高度显示 block 文本

python - 如果一列上的条件为真,则在另一列上找到模式并给出输出 Pandas

mysql - 使用正则表达式进行 SQL 查询

regex - Zgrep 和 sed 不匹配包含减号 (-) 的行