2012-11-12 11 views

Odpowiedz

18

Nie ma replaceAll w JavaScript: konsola błąd został prawdopodobnie zgłoszenie błędu .. zwrócić uwagę!

Zamiast używać /g ("pasuje globalnie") modyfikator z regularnym argumentu ekspresyjnego do replace:

var a="::::::"; 
a = a.replace(/:/g,"hi"); 
alert(a); 

Kolumnę pokryte MDN: String.replace (i gdzie indziej).

+0

dlaczego ten kod nie działa var a = ":):) ::::"; a = a.replace (/:)/g, "hi"); alert (a); –

+1

@VishnuChid Ponieważ '/:)/g' jest nieprawidłowym dosłownym wyrażeniem regularnym (spowoduje to błąd składni ze względu na" dodatkowy "nawias zamykający). Zamiast tego spróbuj '/: \)/g'. Proszę przeczytać komunikaty o błędach i dokładnie opisać komunikaty o błędach - "nie działa" i "nie działa" są bardzo niejasne. –

+0

Dostaję SyntaxError: missing) po liście argumentów dla /: \)/g, proszę o pomoc, i jaki jest temat, o którym powinienem przeczytać na temat używania ukośników ?? –

6

Nie ma funkcji replaceAll w języku JavaScript.

Można użyć wyrażenia regularnego z globalnego identyfikatora, jak pokazano na PST za odpowiedź:

a.replace(/:/g,"hi");

Alternatywą które niektórzy ludzie wolą, ponieważ eliminuje konieczność wyrażeń regularnych jest użycie split i join funkcji JavaScript za tak jak:

a.split(":").join("hi"); 

Warto zauważyć, że drugie podejście jest jednak wolniejsze.

+2

+1 dla rozwiązania typu "split". – elclanrs

+0

+1 dla rozdzielonego rozwiązania –