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

Forms 在验证表单时,我应该假定字段有效还是无效?,forms,language-agnostic,validation,Forms,Language Agnostic,Validation,当我为web表单编写验证代码时,我通常假设字段的内容是有效的,并试图证明它是无效的。假设该字段的内容无效,然后尝试证明其有效,这是更好的做法吗 一个非常简单的示例(伪代码): 函数有效(formFieldValue、minLength、maxLength){ 有效=真; fieldLength=长度(formFieldValue); if(字段长度最大长度){ 有效=错误; } 返回有效; } 假设有问题的字段无效并相应地修改我的检查是否更好 请注意-我不是说XSS保护或输入过滤。我们永远不能

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

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

函数有效(formFieldValue、minLength、maxLength){
有效=真;
fieldLength=长度(formFieldValue);
if(字段长度<最小长度){
有效=错误;
}
如果(字段长度>最大长度){
有效=错误;
}
返回有效;
}
假设有问题的字段无效并相应地修改我的检查是否更好


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

我认为,当您只讨论长度等问题时,这没有什么大区别。但我会假设输入是无效的,并证明它不是,因为我可能对XSS输入也这样做

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

对于javascript,allready有许多库可以解决您的问题

e、 g。 主干。表格


jqueryvalidatin插件

关键在于您的所有条件是否都运行

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

在这两种情况下,您都必须检查所有条件是否满足,因为您希望验证所有字段。所以,不管你在一开始就认为它是有效的还是无效的,我们主要检查它的无效性

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

    fieldLength = length( formFieldValue );

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

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

    return valid;
}