如何将正则表达式分配给变量以便以后在字符串上使用?

use*_*841 1 javascript regex oop

我目前有这个:

var input = "some input";
var firstRegex = input.match(/[aeiou]/gi);
var secondRegex = /ee/.test(input);
Run Code Online (Sandbox Code Playgroud)

因此,如果输入变量未定义,两个正则表达式都会阻止代码在浏览器中编译。

有没有办法将正则表达式分配给变量,以便稍后可以在输入时调用它们?

例如,在一个对象内部:

var checkStrings = {

 firstRegex : match(/[aeiou]/gi),
 secondRegex : /ee/,

}

// call on input
 checkStrings.firstRegex(input);
Run Code Online (Sandbox Code Playgroud)

har*_*ski 5

来自 Mozilla的链接更详细地介绍了 js 中的 RegExp 对象,但如果您想简单地将 regexp 分配给变量,您可以这样做:

var firstRegex = new RegExp(/[aeiou]/gi);
var secondRegex = new RegExp(/ee/);
Run Code Online (Sandbox Code Playgroud)

然后你就会像现在一样称呼它们。

if (input) {
    var matches = input.match(firstRegex);
    var passedTest = secondRegex.test(input);
}
Run Code Online (Sandbox Code Playgroud)

显然,您可以按照 @IIya 的建议在对象中更轻松地完成此操作,但我想我应该在 js 中添加一些有关 RegExp 对象的信息。