2016-07-01 21 views
0

所以我現在有強制執行強密碼這種方法:如何爲用戶名限制創建jQuery Validator方法?

$.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.') 

我要創建我的用戶名類似的東西給他們僅侷限於英文字母,數字,破折號,下劃線和句點。我似乎無法弄清楚如何去做。我讀了一些關於正則表達式的知識,但仍然無法弄清楚我應該如何去處理我的代碼。

這是我目前有:

$.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.') 

可有人告訴我的方式嗎?

+0

你可以,如果你使用的是用'[\ w .-] {4}'..但是這將允許'.....'或'。 - ...'等 – rock321987

回答

1

下面是一個使用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指出的代碼,它仍然會允許...-...和其他奇怪的用戶名。

1

您可以使用此功能,並設置自定義非法章程:

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; 
} 
1

我得到了這個正則表達式的工作和基於jQuery的Validator文檔。

/^[a-z|A-Z]|\d|_|-|\./m 

下面是它在代碼中的外觀。 jQuery validator addMethod

$.validator.addMethod('goodUsername', function(value, element)){ 
    return this.optional(element) || /^[a-z|A-Z]|\d|_|-|\./.test(value); 
}, 'What kind of fkin username is that? You can only use letters, numbers, dashes, underscores and periods.'); 

我寫使用thie網站寫我的正則表達式regex 101

我跑了針對這些字符串。

var str2 = 'uerhyeiufhsniufhsdJSHNAJDHJS09i304584305i4309SKA()*^&85$674&_-.dsf%#$fdfIIJ76..'; 
var str2 = 'dskfjdkaAHDNsfj34-2sds3432_-.*()$%#[email protected]'; 
+0

好字符類,不需要在內部包含'|'。也可以'\ w' =>'[A-Za-z0-9_]' – rock321987

相關問題