一尘不染

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

javascript

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

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


阅读 603

收藏
2020-04-25

共1个答案

一尘不染

使用RegExp对象构造函数从字符串创建正则表达式:

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