javascript - 将用户输入的字符串转换为正则表达式

标签 javascript html regex

我正在用 HTML 和 JavaScript 设计一个正则表达式测试器。用户将输入正则表达式、字符串,并通过单选按钮选择他们想要测试的函数(例如搜索、匹配、替换等),程序将在使用指定参数运行该函数时显示结果。当然,会有额外的文本框用于替换额外的参数等。

我的问题是从用户那里获取字符串并将其转换为正则表达式。如果我说他们不需要在输入的正则表达式周围有 //,那么他们就无法设置标志,例如 gi 。所以他们必须在表达式周围有 //,但是如何将该字符串转换为正则表达式?它不能是一个文字,因为它是一个字符串,而且我无法将它传递给 RegExp 构造函数,因为它不是一个没有 // 的字符串。还有其他方法可以将用户输入的字符串转换为正则表达式吗?我是否必须使用 // 解析正则表达式的字符串和标志,然后以另一种方式构造它?我应该让他们输入一个字符串,然后分别输入标志吗?

最佳答案

使用RegExp object constructor从字符串创建正则表达式:

var re = new RegExp("a|b", "i");
// same as
var re = /a|b/i;

关于javascript - 将用户输入的字符串转换为正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60865298/

相关文章:

html - CSS:如何配置图像然后配置表格?

javascript - Javascript 中的子字符串与 substr()

javascript - 如何使用库未公开但在类型中实现的类型定义?

javascript - 如何根据条件动态设置 Aurelia 中复选框的选中属性

html - 在 vim 中,我可以禁用 <i> 标签中包含的文本的突出显示吗?

javascript - 从匹配的 Regex JavaScript 中选择字符

java - 不匹配不同语言的模式对象

javascript - 如何忽略正则表达式中 URL 周围的字符

javascript - 如何将 ↵ 替换为\n

javascript - Sequelize ,其中relation.attribute 等于