通过javascript输入验证

时间:2013-06-28 09:39:51

标签: javascript

我写了一个验证输入的例程。它工作正常,但当我输入字符a然后它只是接受。这是我的代码。

function isValidPhoneNumber(val) {
        var flag = true;
        var invalidChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ@!$#";
        if (flag) {
            for (index = 0; index <= val.length - 1; index++) {
                var phchars = val.substring(index, index + 1);
                if (invalidChars.indexOf(phchars) > 0) {
                    flag = false;
                    break;
                }
            }
        }
        return flag;
    }

假如我给了val ='+ 9122a5669974'那么它返回true。 indexof功能无法找到a ....为什么。请告诉我例程中有什么问题。如果找到存在于invalidChars变量中的任何char,则例程应该返回false但是当找到then例程时返回true。帮我抓住错误。感谢

3 个答案:

答案 0 :(得分:2)

请尝试使用以下代码行。

if (invalidChars.indexOf(phchars) != -1) {

答案 1 :(得分:2)

你的行

if (invalidChars.indexOf(phchars) > 0) {

应该是

if (invalidChars.indexOf(phchars) > -1) {

然而,我会考虑使用正则表达式作为更好的方法。

答案 2 :(得分:1)

试试这个,

jQuery.validator.addMethod("mobileNL", function(value, element) {
return this.optional(element) || /^((\+|00(\s|\s?\-\s?)?)31(\s|\s?\-\s?)?(\(0\)[\-  \s]?)?|0)6((\s|\s?\-\s?)?[0-9]){8}$/.test(value);
}, "Please specify a valid mobile number");

additional-methods.js中提到的方法

使用jquery验证插件进行客户端验证很有趣。重要的是,您可以添加自定义方法。

  1. 下载&amp;将以下脚本添加到master,layout或要启用客户端验证的任何位置。

    1.1 jquery-1.8.3.min.js(或以上)链接:http://code.jquery.com/jquery-1.8.3.min.js

    1.2 jquery.validate.min.js&amp; additional-methods.js(http://jqueryvalidation.org/

  2. 2.现在创建验证规则&amp;信息。例如

    var jq = jQuery.noConflict(true);
    (function ($) {
    $(document).ready(function () {
    
        $('#FormName').validate({
            highlight: function (element, errorClass, validClass) {
                $(element.form).find("input[id=" + element.id + "]").addClass("input");
    
            },
            rules: {
                PhoneNumber: {
                    required: false,
                    mobileNL: true,
                    max: 10
                }
    
            },
            messages: {
                PhoneNumber: {
                    mobileNL: "Please enter a correct phone",
                     max: "Please specify the number less or equal to 10"
                }
    
            },
            submitHandler: function (form) {
                form.submit();
                return false;
            }
        });
    });
     })(jq);
    

    创建一个新的js文件,保存为jq_validation.js添加上面的代码。并按此顺序调用它            

    1. 你的html应该是这样的并完成。

      “&lt;%:Html.TextBoxFor(model =&gt; model.PhoneNumber,new {@class =”input“})%&gt;”