循环遍历javascript中的一组正则表达式

Bos*_*ohn 0 javascript regex for-loop

我有一组正则表达式存储在一个对象中,沿着它的风格

myRegexes = {};
myRegexes.reg1 = /[a-z]+[0-9]+/;
myRegexes.reg2 = /[a-e]+/;
Run Code Online (Sandbox Code Playgroud)

我可以这样做 myRegexes.reg1.exec(sampleStr) ,它完美无缺.

但是,如果我循环通过这个对象说

for( reg in myRegexes ){
    reg.exec(sampleStr);
}
Run Code Online (Sandbox Code Playgroud)

我得到一个例外,说"TypeError:Object reg1没有方法'exec'"

我知道javascript对于for-for循环的方式很不满意,但我不知道它是如何成功找到变量的,但在此过程中失去了它的方法.任何人都可以告诉我为什么这会失败以及正确的方法是什么?

elc*_*nrs 6

reg 引用属性名称,你必须抓住实际的正则表达式对象:

for( reg in myRegexes ) {
  myRegexes[ reg ].exec(sampleStr);
}
Run Code Online (Sandbox Code Playgroud)