2009-03-30 13 views
1

J'ai cette fonction javascript qui bloquent des caractères spéciaux ...Comment personnaliser cette fonction javascript?

function validaTexto(texto) 
{ 
    !(/^[A-zÑñ0-9]*$/i).test(texto.value) ? texto.value = texto.value.replace(/[^A-zÑñ0-9]/ig, '') : null; 
} 

Le problème est que cette fonction ne me permet pas de taper des espaces vides ... Comment puis-je personnaliser cette fonction pour me permettre une autre des choses, comme des espaces vides, ",", "." , ";" etc?

Merci!

Répondre

2

changement de l'expression rationnelle suivante:

!(/[^A-zÑñ0-9 ,\.;]*$/i) 

aussi, la fonction est tout à fait redondant en ce qu'il vérifie la chaîne deux fois, en disant essentiellement "Est-ce que la chaîne contient l'un de ces caractères? Oui? Ok, alors recherchez la chaîne pour ces mêmes caractères et supprimez-les. Il suffit de changer à ceci:

function validaTexto(texto) { 
    texto.value.replace(/[^a-zñ0-9 ,\.;]/ig, ''); 
} 
1
function validaTexto(texto) { 
    texto.value.replace(/[^A-z0-9 ,\.;]/ig, ''); 
} 

Referenes (avec des exemples):

+0

Il y a une erreur dans la première regex. il vérifie si la chaîne entière est composée des caractères autorisés, et si c'est le cas, supprimez ceux qui ne sont pas autorisés. De plus, le caractère "ñ" spécial n'est pas vérifié ici. – nickf

Questions connexes