使用正则表达式从对象中检索值 - JS [关闭]
Posted
技术标签:
【中文标题】使用正则表达式从对象中检索值 - JS [关闭]【英文标题】:Retrieving value from an object using regex - JS [closed] 【发布时间】:2022-01-21 21:52:36 【问题描述】:是否可以通过键上的正则表达式从对象中提取值?
示例:
var map= "xxx_yyy":///some props;
var receiverId = "xxx";
var regex = new RegExp(`$receiverId_[^\\n]`);
我想要这样的东西:
map[regex]
亮点:
在构建地图对象时,我没有为重复的 xxx_ 提供选项(例如:如果我有 xxx_yyy,则不会发生 xxx_zzz - 所以正则表达式 xxx_[ANYTHING] 是唯一的) 我不想使用循环,因为那样我就失去了构建为一种哈希表的对象的效果。【问题讨论】:
你试过了吗? 没有办法寻找部分键匹配,除了迭代。 @CinCout - 是的 - 不能那样工作 @CBroe 这正是我上传问题的原因 - 也许有人确实知道一种方法 @CBroe - 我们找到了方法 - 检查答案 【参考方案1】:for (const [key, value] of Object.entries(map))
if(regex.test(key))
// key matches the regex: do whatever you would like
【讨论】:
【参考方案2】:有效 - 我们将整个对象转换为 STRING 并通过正则表达式搜索其中的 KEY - 然后我们根据完整的 KEY 提取值(无循环:))
var map= "xxx_yyy":status:"a";
var receiverId = "xxx";
var regex = new RegExp(`"$receiverId_[^\\n]+?"`,"g");
var mapString = JSON.stringify(map);
var match = mapString.match(regex);
if(match[0])
var key = match[0].replace(/"/g,"");
var val = map[key];
【讨论】:
以上是关于使用正则表达式从对象中检索值 - JS [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
仅使用正则表达式从 long strong 中检索第 12 到第 14 个字符 - Grafana 变量
求正则表达式, 第一位大于0的正整数,直接可以在onkeyup事件中 使用的!