Visualizzazione dei risultati da 1 a 2 su 2

Discussione: regular expression

  1. #1

    regular expression

    Ciao,
    stò provando le regular expression, per esempio per controllare il numero di un telefono cellulare uso questa regulr expression:

    /^([1-9\+]{1})([0-9])*$/

    Funziona perfettamente, infatti mi accetta solo stringhe che hanno come primo carattere solo un numero da 1 a 9 o un + (per i numeri +39333......)

    Adesso il mio problema è che il controllo lo volgio fare in fase di inserimento, per intenderci se il campo dove devo inserire il numero è il seguente:
    <input type="text" name="telefono" onkeyup="controlla()">

    la funzione controlla mi deve controllare se l'ultimo carattere inserito fa rispettare le regole della regular expression:

    codice:
    function controlla(){
    	var str_check = new String();
    	var re = RegExp(/^([1-9\+]{1})([0-9])*$/);
    	str_check = window.form_telefono.telefono.value;
    	if(!str_check.match(re)){
    		alert('Sono consentiti solo numeri');
    		str_check = str_check.replace(/[a-zA-Z]/, '');
    		window.form_telefono.telefono.value = str_check;
    	}
    }
    come vedete ho anche inserito un replace che mi cancella i caratteri non ammessi, ma non funziona correttamente.
    Io dovrei fare il replace di quei caratteri che non rispettano la regular expression.
    Secondo voi come posso fare?
    Saluti...

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Per il replace in fase di scrittura, devi usare una RE semplificata.

    Io userei una cosa del genere:
    codice:
    <input ... onkeyup="this.value = this.value.replace(/[^\d\+ ]/), '');">
    Se non vuoi permettere lo spazio:
    /[^\d\+]/

    Per la verifica finale puoi usare:
    /\+?[\d ]+/

    oppure:
    /\+?\d+/
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.