2017-11-19 4 views
0

基本的に、私は動作しないコードスニペットがあり、私は少しバインドしています。私はNode.jsを初めて使用しています。今は、Expressと非常に単純なMVC設定で作業しています。すべて正常に動作し、私が却下をfalseに設定すると、フォームの入力が停止するはずです。 regex.test(first_name) - first_nameが "< < < >>>"であってもfalseを返します。正規表現をRubularでテストしたので、正しいことが分かりました。私は何が欠けていますか?私は、私が(私はRailsから来た)に慣れていないnpm/regex実装のものがあると確信しています。regex with javascript - 私の 'injection' checkがtrueを返す必要があります

module.exports = { 

validate_form_submission: function (first_name, last_name, street_address, city, state, zip) { 

    var Regex = require("regex"); 
    var regex = new Regex(/([<>\/])/); 
    var function_reply = true; 

    //validate presence of fields 
    if (!(first_name) || !(last_name) || !(street_address) || !(city) || !(state) || !(zip)) 
    { 
     function_reply = false; 
    }; 

    //check for SQL injection 
    if ((regex.test(first_name)) || regex.test(last_name) || regex.test(street_address) || regex.test(city) || regex.test(state) || regex.test(zip)) 
    { 
     function_reply = false; 
    }; 

    return function_reply; 
} 

}

+0

なぜ 'require(" regex ")'が必要ですか?正規表現はJavaScriptのネイティブな値型であり、ノードモジュールを動作させる必要はありません。 'var regex = /([<> \ /])/;と書くことができます。問題が解決するかどうかは分かりませんが、ノードモジュールを必要とする必要はありません。 – jas7457

+0

ok私はそれを試みます。ありがとう!編集:それは働いた。 npm regexモジュールのためのBoo。先端に感謝します。私が 'var regex = /([<> \ /])/;'の2つの 'var(R/r)egex' – kristeraxel

+0

私はあなたがテストしていると思うもので小さなフィドルを作った。この例では、概念証明としてfirst_nameを使用しました。これは期待している出力ですか? https://jsfiddle.net/ecknd13r/ – jas7457

答えて

0

それはちょうどそこにする必要はありませんでしたNPMの正規表現モジュールでした。 最終コード:

module.exports = { 

    validate_form_submission: function (first_name, last_name, street_address, city, state, zip) { 

     var regex = /([<>\/])/; 
     var function_reply = true; 

     //validate presence of fields 
     if (!(first_name) || !(last_name) || !(street_address) || !(city) || !(state) || !(zip)) 
     { 
      function_reply = false; 
     }; 

     //check for SQL injection 
     if ((regex.test(first_name)) || regex.test(last_name) || regex.test(street_address) || regex.test(city) || regex.test(state) || regex.test(zip)) 
     { 
      function_reply = false; 
     }; 

     return function_reply; 
    } 
} 
関連する問題