Snippet #22 ~ JAVASCRIPT: nettoyer une saisie pour les url

Voila un petit snippet pour supprimer lors de la saisie tous les caractères qui ne sont pas alphanumériques (a l’exception des caractères – et _ )
Cette fonction est pratique pour générer des noms sécurisés pour les url, les chemin systèmes etc…

La fonction utilisable avec JQuery

function shortName(element){
$(element).val($(element).val().replace(/([^a-z0-9\-_])/gi,''));
}

 

La même fonction en javascript natif

function shortName(element){
element.value = element.value.replace(/([^a-z0-9\-_])/gi,'');
}

 

Exemple d’utilisation

    <script type="text/javascript">

    function shortName(element){
    element.value = element.value.replace(/([^a-z0-9\-_])/gi,'');
    }

    </script>

    <!-- dans ce champs, essayez de taper !:;,-*=+°à / ... -->
    <input type="text" onkeyup="shortName(this);" name="nomSimple" />

 

Edit : De Boudah Talenka :  On peut encore simplifier l’expression avec

function shortName(e){ e.value = e.value.replace(/([^\w\-])/g,''); }

 

4 réactions au sujet de « Snippet #22 ~ JAVASCRIPT: nettoyer une saisie pour les url »

  1. in Réponse

    Mieux vaut utiliser l’attribut ‘pattern’ de input, non ? Ça enlève toute dépendance à JS

    • Idleman Auteur ArticleRéponse

      Le principe est de pouvoir faire ça en js et non via HTML5 (qui n’est pas encore super bien intégré a tous les navigateurs), mon exemple s’applique a un input mais il pourrait tout aussi bien s’appliquer à une chaîne vacante, a un paramètre d’url etc.. :), après adapter l’expression à un pattern html5 au besoin ne necessite q’un vague copier coller 😀

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.