我想从this post编辑javascript 并在地图内使用regexp(如果可能的话):像字符串以“ xyz”开头,但这种语法对我不起作用:
var anchorMap = {
"A": "/products/A",
"B": "/products/B",
/^xyz: "/products/xyz"
}
有可能吗?还是实现这种逻辑的最简单方法是什么?
答案 0 :(得分:0)
我不建议这样做(我在这里并不真正理解您的目标-但是,您可以将regex设置为字符串并循环进行测试的键。
var anchorMap = {
"A": "/products/A",
"B": "/products/B",
"^.{3}": "/products/xyz"
};
const k = Object.keys(anchorMap).find(e => new RegExp(e).test("xyz"));
console.log(anchorMap[k]);
答案 1 :(得分:0)
您可以将键定义为正则表达式,然后使用find可以看到它与哪个正则表达式键匹配,并从对象中获取该特定键的值。
var anchorMap = {
"A": "/products/A",
"B": "/products/B",
[`^xyz`]: "/products/xyz"
}
let str = 'xyz'
let op = Object.keys(anchorMap).find( e => new RegExp(e).test(str))
console.log(anchorMap[op])