2014-09-11 2 views
0

Ce script fonctionne correctement pour valider alphanumérique sans espaces. Mais comment vais-je également inclure que la longueur minimale doit être d'au moins 3 caractères?Javascript Valider alphanumérique avec la longueur de texte minimum

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

Merci d'avance.

Répondre

2

Avez-vous essayé?

/^[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

pourriez-vous me donner une brève explication de \ w et \ d? – CudoX

+0

'\ d' signifie chiffres, équivalent à' [0-9] ', et' \ w' signifie '[a-zA-Z0-9_]'. Faites attention à ce que '\ w' inclue également le caractère de soulignement. –

1

Changer la + quantificateur (ce qui signifie une ou plusieurs fois) à {3,} (ce qui signifie trois fois ou plus):

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

Changer l'expression rationnelle à:

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

Le quantificateur {min,max} signifie de min à max répétitions. Si vous laissez l'un d'eux sur, cela signifie que la fin est illimitée, donc {3,} signifie au moins 3.

1

Vous pouvez utiliser un quantificateur approprié dans votre expression régulière:

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

Ou factoriser votre validation dans son propre fonction, qui serait plus maintenable:

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 
} 
Questions connexes