2017-03-13 15 views
-1

regexとnodejsの新機能です。私は関数を呼び出すプログラムを持っていて、そのようなコンソールに(結果)を表示します。偽の文字列:結果(Javascript/Nodejs)の一致する文字列の正規表現

{ 
    "state": { 
    "on": false, 
    "name": name, 
    "date": date, 
    "value": 254, 
    }, 
} 

私は現在、これを持っていますが、本当に私のために働いていないどのように正規表現は、「上」と一致するようになります。誰かが "ONLY"をキャプチャするためにどのような正規表現を使用するか考えている人はいますか? "on":false、??任意の助け、提案は大いに感謝します。

call.getStatus(22, function(err, result){ 
    if (err) throw err; 
    displayStatus(result); 
    var re = new RegExp("/^"on":false,$\"); 
    if (re.test(displayStatus)) { 
     console.log("Valid"); 
    } else { 
     console.log("Invalid"); 
    } 
}); 
+0

文字列(JSON)をオブジェクトとして解析しますか?** => ** 'JSON.parse'を使用してください! –

+0

@ibrahimmahrir私は "on"を見て合格/不合格の場合を書こうとしています:falseとmarksの戻り値は失敗します。私が持っているステータスを表示するには:var displayStatus = function(status){ \t console.log(JSON.stringify(status、null、2)); }; – pyt

+0

'displayStatus'はこの' re.test(displayStatus) 'が間違っている関数です!私はあなたが 're.test(result)'を意味したと思います! –

答えて

0

あなたは、サブストリングが"on": falseになることを確信しているなら、あなたはこのようにindexOfを使用することができます。

call.getStatus(22, function(err, result){ 
    if (err) throw err; 
    displayStatus(result); 
    if (result.indexOf('"on": false') !== -1) { 
     console.log("Valid"); 
    } else { 
     console.log("Invalid"); 
    } 
}); 

またはこのよう正規表現を使用して、安全のために:

call.getStatus(22, function(err, result){ 
    if (err) throw err; 
    displayStatus(result); 
    var re = /"on"\s*:\s*false*/; 
    if (re.test(result)) { 
     console.log("Valid"); 
    } else { 
     console.log("Invalid"); 
    } 
}); 

私は正規表現のリテラル(/.../)を使用して、"on"に続く036以上のスペースを探します。\s* fol :と0以上のスペースでローとなり、最後にfalseとなります。

関連する問題