【发布时间】:2017-11-19 18:30:37
【问题描述】:
基本上,我有一个代码 sn-p 不起作用,我有点纠结。我是 Node.js 的新手,现在我正在使用 express 和一个非常简单的 MVC 配置。一切运行良好,如果我硬将返回设置为 false,表单输入会按原样停止。只是这个函数 - regex.test(first_name) - 即使 first_name 是“>>”仍然会返回 false。我在 Rubular 中测试了正则表达式,所以我知道它是正确的。我错过了什么?我很确定 npm/regex 实现有一些我不习惯的东西(我来自 Rails)。
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;
}
}
【问题讨论】:
-
为什么一定要
require("regex")?正则表达式是 JavaScript 中的本机值类型,不需要节点模块即可工作。你可以写var regex = /([<>\/])/;我不知道这是否能解决你的问题,但这里不需要节点模块。 -
好的,我会试试的。谢谢!编辑:那行得通。嘘 npm 正则表达式模块。谢谢你的提示。如果我只用 'var regex = /([\/])/;' 切换两个 'var (R/r)egex' 调用
-
我对我认为你正在测试的东西做了一个小小的改动。我只在示例中使用了 first_name 作为概念证明。这是您期望的输出吗? jsfiddle.net/ecknd13r
-
好的,谢谢!不知道为什么 npm 模块会碍事,但确实如此。感谢您的帮助。
-
没问题!我以前从未使用过 npm 模块,它似乎没有必要,所以它抛出了一个危险信号。很高兴它对你有用!
标签: javascript node.js regex