1
私はNode-RED関数ノードのJavaScriptを使っていますが、正規表現の比較で問題が発生しています。正常に動作してmsg.payloadは今、「真」の値を持つ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;
は
私は他の場所ではなく、しかしそれを定義から「入ってくる」変数を取得しようとし
、それが失敗します。//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;
それが動作し、「例外TypeError:incoming.testは関数ではありません」と文句を言うしないこの方法を「着信」変数を設定します。 typeof(incoming)を取得すると、以前のように「Object」ではなく「String」が返されます。 msg.payload [0] .expressionには、関数内での設定と同じ文字列が含まれています。異なるデータ型を持っています。これを処理する最善の方法は何ですか?
ありがとうございます!
はmsg.payload [0]です。表現は文字列ですか? –
可能なdup https://stackoverflow.com/questions/874709/converting-user-input-string-to-regular-expression –
Garr - あなたは正しいです、私は着信メッセージの周りにRegExp()を追加し、今すぐ正しく変換しています。ありがとうございました! – Eric