Ik heb een input veld waar elk a-z, A-Z en 0-9 in mag komen. Spaties en speciale karakters moeten worden vervangen door een '-'. Dit heb ik netjes werkend met de volgende code:
<script>
$(".input_field").keyup(function(e){
var key = e.charCode || e.keyCode || 0;
if(key >= 37 && key <= 40)
return;
$(this).val($(this).val().replace(/[^A-Za-z0-9]/g, '-').toLowerCase());
});
</script>
Indien de key een pijltjes toets is, niets mee doen, anders karakters controleren en zo nodig vervangen door een '-'.
Nu zou ik graag aan deze validatie 3 dingen willen toevoegen:
1. Bij begin van inputveld (eerste karakter dus) mag geen '-' noch mag ontstaan door bijv spatie.
2. Bij het uitstappen van het veld (blur was dat volgens mij?) controleren of laatste waarde geen '-' is en anders die weghalen uit inputveld.
3. Stel ik zou iets typen als: hallo piet & klaas => wordt => hallo-piet---klaas. Ik zou tijdens het typen willen voorkomen dat er meerdere streepjes achter elkaar komen te staan. Resultaat zou dus moeten worden: hallo-piet-klaas (ook bij invoeren van - naderhand mogen er geen 2 of meer staan...)
Ik heb al wat geprobeerd met de "string".match(regex) maar krijg dit niet werkend.