Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何为用户名约束创建jQuery验证程序方法?_Javascript_Jquery_Regex_Jquery Validate - Fatal编程技术网

Javascript 如何为用户名约束创建jQuery验证程序方法?

Javascript 如何为用户名约束创建jQuery验证程序方法?,javascript,jquery,regex,jquery-validate,Javascript,Jquery,Regex,Jquery Validate,因此,我目前有一种强制使用强密码的方法: $.validator.addMethod('goodPassword', function(value, element){ return this.optional(element) || value.length >= 6 && /\d/.test(value) && /[a-z]/i.test(value); }, 'Your password suck

因此,我目前有一种强制使用强密码的方法:

$.validator.addMethod('goodPassword', function(value, element){
    return this.optional(element) ||
        value.length >= 6 &&
        /\d/.test(value) &&
        /[a-z]/i.test(value);
}, 'Your password sucks boy, you need at least 6 char and both number and char in that motherf.')
我想为我的用户名创建一些类似的东西,将它们限制为字母、数字、破折号、下划线和句点。我似乎不知道该怎么办。我读了一点关于regex的书,但仍然不知道我应该如何处理我的代码

这就是我目前拥有的:

$.validator.addMethod('goodUsername', function(value, element)){
    return this.optional(element) ||
        value.length >= 4 // && or ||, not really sure what to put here
        //something to check if entered data contains anything other than letters, numbers, dashes, underscores and periods
}, 'What kind of fkin username is that? You can only use letters, numbers, dashes, underscores and periods.')

有人能告诉我怎么走吗?

您可以使用此功能设置您的自定义非法租约:

function validateUsername(fld) {
    var error = "";
    var illegalChars = /\W/; // allow letters, numbers, and underscores

    if (fld.value == "") {
        fld.style.background = 'Yellow';
        error = "You didn't enter a username.\n";
        alert(error);
        return false;

    } else if ((fld.value.length < 5) || (fld.value.length > 15)) {
        fld.style.background = 'Yellow';
        error = "The username is the wrong length.\n";
        alert(error);
        return false;

    } else if (illegalChars.test(fld.value)) {
        fld.style.background = 'Yellow';
        error = "The username contains illegal characters.\n";
        alert(error);
        return false;

    } else {
        fld.style.background = 'White';
    }
    return true;
}
函数validateUsername(fld){
var误差=”;
var illegalChars=/\W//;//允许使用字母、数字和下划线
如果(fld.value==“”){
fld.style.background='黄色';
error=“您没有输入用户名。\n”;
警报(错误);
返回false;
}否则如果((fld.value.length<5)| |(fld.value.length>15)){
fld.style.background='黄色';
error=“用户名的长度错误。\n”;
警报(错误);
返回false;
}否则如果(非法字符测试(fld值)){
fld.style.background='黄色';
error=“用户名包含非法字符。\n”;
警报(错误);
返回false;
}否则{
fld.style.background='白色';
}
返回true;
}

您可以使用此功能设置自定义非法租约:

function validateUsername(fld) {
    var error = "";
    var illegalChars = /\W/; // allow letters, numbers, and underscores

    if (fld.value == "") {
        fld.style.background = 'Yellow';
        error = "You didn't enter a username.\n";
        alert(error);
        return false;

    } else if ((fld.value.length < 5) || (fld.value.length > 15)) {
        fld.style.background = 'Yellow';
        error = "The username is the wrong length.\n";
        alert(error);
        return false;

    } else if (illegalChars.test(fld.value)) {
        fld.style.background = 'Yellow';
        error = "The username contains illegal characters.\n";
        alert(error);
        return false;

    } else {
        fld.style.background = 'White';
    }
    return true;
}
函数validateUsername(fld){
var误差=”;
var illegalChars=/\W//;//允许使用字母、数字和下划线
如果(fld.value==“”){
fld.style.background='黄色';
error=“您没有输入用户名。\n”;
警报(错误);
返回false;
}否则如果((fld.value.length<5)| |(fld.value.length>15)){
fld.style.background='黄色';
error=“用户名的长度错误。\n”;
警报(错误);
返回false;
}否则如果(非法字符测试(fld值)){
fld.style.background='黄色';
error=“用户名包含非法字符。\n”;
警报(错误);
返回false;
}否则{
fld.style.background='白色';
}
返回true;
}

以下是使用Javascript正则表达式功能的代码

$.validator.addMethod('goodUsername', function(value, element)){
    return this.optional(element) || value.match(/^[\w.-]{4,}$/m)
}, 'What kind of fkin username is that? You can only use letters, numbers, dashes, underscores and periods.')

正如@rock321987所正确指出的,它仍然允许
…-…
和其他奇怪的用户名。

下面是使用Javascript正则表达式功能的代码

$.validator.addMethod('goodUsername', function(value, element)){
    return this.optional(element) || value.match(/^[\w.-]{4,}$/m)
}, 'What kind of fkin username is that? You can only use letters, numbers, dashes, underscores and periods.')

正如@rock321987所正确指出的,它仍然允许
…-…
和其他奇怪的用户名。

我使用这个正则表达式,并基于jQuery验证程序文档

/^[a-z|A-Z]|\d|_|-|\./m
下面是它在代码中的外观

我用这个网站写我的正则表达式

我把它放在这些绳子上

var str2 = 'uerhyeiufhsniufhsdJSHNAJDHJS09i304584305i4309SKA()*^&85$674&_-.dsf%#$fdfIIJ76..';
var str2 = 'dskfjdkaAHDNsfj34-2sds3432_-.*()$%#545@';

我让这个正则表达式工作,并基于jQuery验证程序文档

/^[a-z|A-Z]|\d|_|-|\./m
下面是它在代码中的外观

我用这个网站写我的正则表达式

我把它放在这些绳子上

var str2 = 'uerhyeiufhsniufhsdJSHNAJDHJS09i304584305i4309SKA()*^&85$674&_-.dsf%#$fdfIIJ76..';
var str2 = 'dskfjdkaAHDNsfj34-2sds3432_-.*()$%#545@';

您可以使用
[\w.-]{4,}
。但这将允许
..
-..
等。您可以使用
[\w.-]{4,}
。但这将允许
..
-
等。如果您使用的是字符类,则不需要在其中包含
。同样
\w
=
=
[A-z0-9]
如果您使用的是字符类,则无需在其内部包含
。另外
\w
=>
[A-Za-z0-9]