我目前有这个:
var input = "some input";
var firstRegex = input.match(/[aeiou]/gi);
var secondRegex = /ee/.test(input);
因此,如果输入变量未定义,两个正则表达式都会阻止代码在浏览器中编译。
有没有办法将正则表达式分配给变量,以便以后可以在输入时调用它们?
例如,在对象内部:
var checkStrings = {
firstRegex : match(/[aeiou]/gi),
secondRegex : /ee/,
}
// call on input
checkStrings.firstRegex(input);
最佳答案
这link来自 Mozilla 的文章更详细地介绍了 js 中的 RegExp 对象,但是如果您只想将正则表达式分配给变量,您可以这样做:
var firstRegex = new RegExp(/[aeiou]/gi);
var secondRegex = new RegExp(/ee/);
然后您可以像现在一样调用它们。
if (input) {
var matches = input.match(firstRegex);
var passedTest = secondRegex.test(input);
}
您显然可以按照@IIya 的建议在对象中更轻松地执行此操作,但我想我会在 js 中添加一些有关 RegExp 对象的信息。
关于javascript - 如何将正则表达式分配给变量以供以后在字符串上使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34376221/