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)
来自 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 对象的信息。