使用带有正则表达式的ajax进行表单验证

时间:2015-10-01 01:30:29

标签: ajax regex forms validation

现在我正在使用ajax从按键上的输入字段中获取值并将其与mysql中的数据匹配,如果数据是唯一的,则它将使边框变为绿色并标记其他红色边框并交叉。现在我想添加正则表达式来验证输入并限制它。

function username_check() {
        var username = $('#warden_id').val();
        if (username == "" || username.length < 4) {
            $('#warden_id').css('border', '1px #CCC solid');
            $('#tick').hide();
        } else {

            jQuery.ajax({
                type: "POST",
                url: "check.php",
                data: 'username=' + username,
                cache: false,
                success: function (response) {
                    if (response == 1) {
                        $('#warden_id').css('border', '1px #C33 solid');
                        $('#tick').hide();
                        $('#cross').fadeIn();
                    } else {
                        $('#warden_id').css('border', '1px #090 solid');
                        $('#cross').hide();
                        $('#tick').fadeIn();
                    }

                }
            });
        }

正则表达式我想用来验证数据

/^[a-zA-Z\s]+$/

1 个答案:

答案 0 :(得分:2)

仅供参考,您不应在客户端验证用户代码。始终将客户端的输入视为 evil

我更改了正则表达式,以便包含用户名的最小长度(username.length < 4

 function username_check() {
    var username = $('#warden_id').val();

    // if / else has been turned
    if (username.match(/^[a-zA-Z\s]{4,}$/)) {
        ...
    } else {
        $('#warden_id').css('border', '1px #CCC solid');
        $('#tick').hide();
    }
     ...

...