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

form validation using ajax with regex

现在我使用Ajax从按键的输入字段中获取值,并将其与MySQL中的数据进行匹配,如果数据是唯一的,那么它将使边框变绿,并标记为红色边框和十字线。现在我想添加regex来验证输入并限制它。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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();
                    }

                }
            });
        }

我要用来验证数据的regex

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


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

我更改了regex,以便包含用户名的最小长度(username.length < 4)

1
2
3
4
5
6
7
8
9
10
11
12
13
 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();
    }
     ...

...