2014-09-11 102 views
0

此脚本正常工作以验证不带空格的字母数字。但是,我怎么也包括最小长度应该至少3个字符?Javascript使用最小文本长度验证字母数字

var re = /^[A-Za-z0-9']+$/; 
// Check input 
if (re.test(document.getElementById(x).value)) { 
    // Style green 
    document.getElementById(x).style.background = '#ccffcc'; 
    // Hide error prompt 
    document.getElementById(x + 'Error').style.display = "none"; 
    return true; 
} else { 
    // Style red 
    document.getElementById(x).style.background = '#e35152'; 
    // Show error prompt 
    document.getElementById(x + 'Error').style.display = "block"; 
    return false; 
} 

在此先感谢。

回答

2

你试过了吗?

/^[A-Za-z0-9']{3,}$/; 

.  (Zero or more items) 
+  (One or more items) 
{n} (Exactly n items) 
{n,m} (Between n and m items where n < m) 
+0

你介意给我一个\ w和\ d的简短解释吗? – CudoX 2014-09-11 11:48:45

+0

'\ d'表示数字,相当于'[0-9]','\ w'表示'[a-zA-Z0-9_]'。请注意,\ w'也包含下划线。 – 2014-09-11 11:50:15

1

更改+量词(这意味着一个或多个次),以{3,}(这意味着三个或更多次):

var re = /^[A-Za-z0-9']{3,}$/; 
0

更改正则表达式到:

var re = /^[A-Za-z0-9']{3,}$/; 

的量词{min,max}表示从minmax重复。如果你把其中任何出来,这意味着最终是无限的,所以{3,}意味着至少3

1

你可以在你的正则表达式中使用适当的量词:

var re = /^[A-Za-z0-9']{3,}$/; 

或者重构您的验证到其自己的功能,这将更加可维护:

var isValid = function(value) { 
    var re = /^[A-Za-z0-9']+$/; 
    if (!re.test(value)) { return false; } 
    if (value.length < 3) { return false; } 
    // further tests could go here 
    return true 
}