2014-09-11 76 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 
} 
相關問題