验证表单时,我应该假设字段有效还是无效?

时间:2012-03-01 20:30:59

标签: forms language-agnostic validation

当我为Web表单编写验证代码时,我通常认为字段的内容有效并试图证明它是无效的。假设该字段的内容无效,然后尝试证明它是有效的,这是一种更好的做法吗?

一个非常简单的例子(伪代码):

function isValid( formFieldValue, minLength, maxLength ) {
    valid = true;

    fieldLength = length( formFieldValue );

    if( fieldLength  < minLength ) {
        valid = false;
    }

    if( fieldLength > maxLength ) {
        valid = false;
    }

    return valid;
}

假设相关字段无效并相应地修改我的支票会不会更好?

请注意 - 我不是在谈论XSS保护或输入过滤。我们永远不能假设用户输入是安全的。我正在谈论验证表格字段中的最小/最大长度或有效电子邮件地址等内容。

3 个答案:

答案 0 :(得分:0)

我认为当你谈论长度等事情时,它没有什么大的区别。但我会假设输入无效并证明它不是,因为我对XSS输入做了同样的事情。

答案 1 :(得分:0)

我认为更好的想法是假设错误的输入并证明其有效性。这更容易。

对于javascript,已经存在多个可以解决您问题的库。

e.g。 Backbone.Forms https://github.com/powmedia/backbone-forms

jQuery validatin插件http://bassistance.de/jquery-plugins/jquery-plugin-validation/

答案 2 :(得分:0)

关键是你的所有条件是否都在运行。

案例1:假设表格有效,然后通过检查例如2个条件来检查其无效性。 案例2。假设一个表格无效,然后检查2条件是否无效?

在这两种情况下,您都必须检查所有要满足的条件,因为您要验证所有字段。因此,无论您认为它在开始时是有效还是无效,我们主要检查是否无效。