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/874709/

相关文章:

javascript - 链+过滤器+值返回值不就是一个函数吗?

javascript - 本地存储: Get specific localstorage value of which contains many items

javascript显示数组中用户定义的元素

Html2pdf 单元格中的图像与其他单元格重叠

javascript - 我想获得与正则表达式的所有匹配项。 Javascript

Java:分割逗号分隔的字符串但忽略引号中的逗号

javascript - Firefox 对待 ajax 的方式与 Chromium 不同?

Java .split() 与正则表达式匹配 html <a> 链接

regex - 这个正则表达式模式描述了什么 : ".{5,}+"

javascript - 使用 JQuery 更改下拉菜单的选定选项