Jak globalnie zamienić ukośnik w ciągu JavaScript?
javascript
Babiker
źródło
źródło
Poniższe rozwiązanie wystarczy, ale zastąpi tylko jedno wystąpienie:
"string".replace('/', 'ForwardSlash');
W przypadku globalnej zamiany lub jeśli wolisz wyrażenia regularne, wystarczy, że unikniesz ukośnika:
"string".replace(/\//g, 'ForwardSlash');
"string".replace('/', 'ForwardSlash', 'g')
ale jest to niestandardowy argument, który działa tylko w Firefoksie afaik."string".replace(/\//g, 'ForwardSlash');
działa, ale usuwa / g z tego i nie działa./
. Bez g zastępuje tylko jedną instancję. A jeśli usuniesz/g
, całkowicie złamiesz wyrażenie regularne, ponieważ ostatnie / jest ogranicznikiem końca.Użyj literału wyrażenia regularnego z
g
modyfikatorem i unikaj ukośnika w przód z ukośnikiem odwrotnym, aby nie kolidował z ogranicznikami.źródło
Bez użycia wyrażenia regularnego (chociaż zrobiłbym to tylko wtedy, gdy ciąg wyszukiwania jest wprowadzony przez użytkownika):
źródło
Czy to jest to, czego chcesz?
źródło
To zadziałało dla mnie, zmieniając się
"//"
w sprawiedliwego"/"
.źródło
Musisz zawinąć ukośnik, aby uniknąć problemów z przeglądarkami lub // komentowania.
źródło
Cześć mała poprawka w powyższym skrypcie .. powyższy skrypt pomijający pierwszy znak podczas wyświetlania wyjścia.
źródło
Proponowane wyrażenie regularne
/\//g
nie działa dla mnie; reszta linii (//g, replacement);
) została zakomentowana.źródło
To jest pomysł Christophera Lincolna, ale z poprawnym kodem:
Przykładowe zastosowanie:
Globalna zamiana ciągu znaków w JavaScript jest niepotrzebnie skomplikowana. Ta funkcja rozwiązuje ten problem. Prawdopodobnie ma to niewielki wpływ na wydajność, ale jestem pewien, że jest on pomijalny.
Oto alternatywna funkcja, wygląda znacznie czyściej, ale jest średnio o około 25 do 20 procent wolniejsza niż powyższa funkcja:
źródło
Możesz utworzyć
RegExp
obiekt, aby był bardziej czytelnyJeśli chcesz zastąpić je wszystkie, dodaj
"g"
flagęźródło