1
我正在使用Node-RED函數節點中的一些javascript,並且正在運行一個正則表達式比較問題。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現在的值爲「真」
當我試圖獲取「來電」變量從其他地方雖然不是定義它,它失敗。
//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.test不是一個函數」。獲取typeof(傳入)將像之前一樣返回「String」而不是「Object」。 msg.payload [0] .expression包含與設置在函數內部相同的字符串,它只是具有不同的數據類型。處理這個問題的最好方法是什麼?
謝謝!
是msg.payload [0] .expression一個字符串? –
可能的dup https://stackoverflow.com/questions/874709/converting-user-input-string-to-regular-expression –
Garr - 你是對的,我在傳入的消息周圍添加了RegExp(),它現在正在正確轉換。謝謝! – Eric