gpt4 book ai didi

Javascript 对象与字符串和 test() 方法

转载 作者:行者123 更新时间:2023-11-30 21:17:25 25 4
gpt4 key购买 nike

我现在正在 Node-RED 函数节点中处理一些 javascript,遇到了正则表达式比较的问题。

var incoming = /^(?=.*?\bhello?\b)(?=.*?\bworld\b).*$/;
//var incoming = msg.payload[0].expression;
var sentence = "say hello to the world";
msg.payload = incoming.test(sentence);
return msg;

一切正常,msg.payload 现在的值为“true”

当我尝试从别处获取“传入”变量而不是定义它时,它失败了。

//var incoming = /^(?=.*?\bhello?\b)(?=.*?\bworld\b).*$/;
var incoming = msg.payload[0].expression;
var sentence = "say hello to the world";
msg.payload = incoming.test(sentence);
return msg;

当以这种方式设置变量“incoming”时,它不起作用并提示“TypeError: incoming.test is not a function”。获取 typeof(incoming) 返回“String”而不是像以前那样的“Object”。 msg.payload[0].expression 包含与函数内部设置相同的字符串,只是具有不同的数据类型。处理此问题的最佳方法是什么?

谢谢!

最佳答案

//var incoming = /^(?=.*?\bhello?\b)(?=.*?\bworld\b).*$/;
var incoming = RegExp(msg.payload[0].expression);
var sentence = "say hello to the world";
msg.payload = incoming.test(sentence);
return msg;

按预期工作,感谢 Garr!

关于Javascript 对象与字符串和 test() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45538464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com