Ciao,
Sto costruendo una semplice routine che mi verifichi se in un url inserito da un utente in un form, riporti o meno il protocollo di trasmissione, se non c'è lo aggiunge.
Il codice che ho sviluppato non usa le regex ma per velocizzare l'esecuzione dello script usa l'indexOf() quindi è questo:
codice:
Codice:

var url = $( this ).val();
if ( url.indexOf( 'http://' ) == -1 || url.indexOf( 'https://' ) == -1 ) {
// Se manca il protocollo lo aggiungo
url = 'http://' + url;
$( this ).val( url );
}

dove url è la variabile che riporta quanto scritto dall'utente nel form.

Il problema è che fa sempre il confronto anche se c'è il protocollo di trasmissione all'inizio dell'url e ci sto diventando matto.
Sbaglio in un punto ma non capisco dove, se c'è la risposta dovrebbe essere maggiore di -1 e quindi saltare il confronto ma non è così.


Originariamente scritto da MarcoGrazia nel forum Javascript in data 11-10-2015 10:30.