javascript - 是否可以使用正则表达式作为对象属性?

标签 javascript regex

假设我有以下对象:

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/

相关文章:

javascript - 显示不同的产品变体

regex - 在执行前测试 perl -pi -e one-liner 的最佳方法?

regex - Grep:省略搜索和结果之间的空格

javascript - 在javascript中使用正则表达式抓取最后一个斜杠后的URL结尾

regex - 使用模式属性排除邮政信箱地址

python - 为什么我的 Python 脚本比它的 R 脚本慢得多?

javascript - React-native componentWillUnmount 未被调用

javascript - 合并两个深度数组

javascript - 使用 D3.js 和 AngularJS 定制折线图

javascript - 如何删除本地主机上的服务 worker 缓存