假设我有以下对象:
var map = {};
map[/^\/e\/(?:([0-9a-f]{24}))\/rename\/?$/] = "/e/531e8942711f533cf0000019/rename";
上面的对象将正则表达式映射到测试值。我需要做如下的事情:
for (var i in map) {
if (map.hasOwnProperty(i) && i.test(map[i])) {
console.log('It works');
}
}
但是上面的代码不起作用。怎么了?
最佳答案
你可以这样做:
var map = {};
map["^/e/(?:([0-9a-f]{24}))/rename/?$"] = "/e/531e8942711f533cf0000019/rename";
for (var i in map) {
if (map.hasOwnProperty(i) && (new RegExp(i)).test(map[i])) {
console.log('It works');
}
}
// prints: It works
关于javascript - 是否可以使用正则表达式作为对象属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22316182/