Domanda Javascript sostituisce il carattere jolly regex


Ho una stringa che ho bisogno di eseguire una sostituzione.

string = replace('/blogs/1/2/all-blogs/','');

I valori 1, 2 e tutti i blog possono cambiare. È possibile renderli dei caratteri jolly?

Grazie in anticipo,

Saluti


12
2017-11-19 13:47


origine


risposte:


Puoi usare .* come segnaposto per "zero o più di qualsiasi personaggio qui" o .+ per "uno o più personaggi qui". Non sono sicuro al 100% esattamente cosa stai cercando di fare, ma per esempio:

var str = "/blogs/1/2/all-blogs/";
str = str.replace(/\/blogs\/.+\/.+\/.+\//, '');
alert(str); // Alerts "", the string is now blank

Ma se c'è di più dopo o prima:

str = "foo/blogs/1/2/all-blogs/bar";
str = str.replace(/\/blogs\/.+\/.+\/.+\//, '');
alert(str); // Alerts "foobar"

Esempio dal vivo

Nota che in entrambi i casi, solo il primo la partita sarà sostituita. Se volessi sostituire tutti partite, aggiungi a g come questo:

str = str.replace(/\/blogs\/.+\/.+\/.+\//g, '');
//                                       ^-- here

Puoi leggere su JavaScript espressioni regolari su MDC.


16
2017-11-19 13:49



js> 'www.google.de/blogs/1/2/all-blogs'.replace(/\/blogs\/[^\/]+\/[^\/]+\/[^\/]+\/?/, '');
www.google.de

1
2017-11-19 13:52



Che ne dici di dividere la stringa alle barre e solo sostituire i valori?

var myURL = '/blogs/1/2/all-blogs/', fragments, newURL;
fragments = myURL.split('/');
fragments[1] = 3;
fragments[2] = 8;
fragments[3] = 'some-specific-blog';
newURL = fragments.join('/');

Questo dovrebbe tornare:

'/blogs/3/8/some-specific-blog'

1
2017-11-19 13:57



Prova questo

(/.+){4}

scappare come appropriato


0
2017-11-19 13:52