Come già accettato una risposta. Per mostrare un po 'di estendere di abbinare e controllare le partite, questo potrebbe aiutare in futuro:
var url = 'http://link.com//whatever///';
var set = url.match(/([^:]\/{2,3})/g); // Match (NOT ":") followed by (2 OR 3 "/")
for (var str in set) {
// Modify the data you have
var replace_with = set[str].substr(0, 1) + '/';
// Replace the match
url = url.replace(set[str], replace_with);
}
console.log(url);
uscita sarà:
http://link.com/whatever/
Farsetti non importa nella vostra situazione. Se si dispone di questa stringa:
var url = 'http://link.com//om/om/om/om/om///';
vostro array set
conterrà m//
multipla. Un po 'ridondante, poiché il ciclo vedrà quella variabile alcune volte. La cosa bella è che String.replace()
non sostituisce nulla se non trova nulla, quindi nessun danno fatto.
Quello che si potrebbe fare è rimuovere prima i duplicati da set
, ma questo richiederebbe quasi la stessa quantità di risorse, semplicemente lasciando passare il ciclo su di essi.
Buona fortuna!
fonte
2013-03-26 14:30:59
Quando provo a sostituire le partite con una singola barra in avanti, il primo restituisce http: /link.co/whateve/ e il secondo ttp: //link.co/whateve/. Per qualche motivo rimuove il primo carattere precedente. – geochr
Oh, vuoi _replace_ them, e non solo _match_ them? Questa è una differenza importante. – Halcyon
@JeffShaver no: rimuove alcuni caratteri –