2010-02-28 14 views
7

Dla aplikacji internetowej, którą robię, zamierzam otrzymywać ciągi tekstowe przychodzące, od czasu do czasu zawierające cudzysłowy. Ponieważ mam zamiar być dokumentem. Pisząc ciąg, muszą one zostać zmienione albo na apostrofy albo uciekną. Jak to zrobię, ponieważ kiedy spróbuję, wydaje się, że nie działa, szczególnie myślę, ponieważ znaki cudzysłowu ciągów zatrzymują działanie pozostałych skryptów.Zastępowanie cudzysłowów w JavaScript?

Nadzieję, że ma sens, jestem całkiem nowy w tym, dlatego może nie mieć sensu. Postaram się wyjaśnić, jeśli zajdzie taka potrzeba. Dziękuję Ci!

+0

jakim języku piszesz aplikację internetową w? –

+0

@James Dodaj swój przykładowy kod i komunikat o błędzie do pytania. –

Odpowiedz

10

Jeśli generujesz łańcuchy JavaScript na serwerze, musisz uciec z cytatów i niektórych innych znaków.

\'  Single quotation mark 
\"  Double quotation mark 
\\  Backslash 
\b  Backspace 
\f  Form feed 
\n  New line 
\r  Carriage return 
\t  Horizontal tab 
\ddd Octal sequence (3 digits: ddd) 
\xdd Hexadecimal sequence (2 digits: dd) 
\udddd Unicode sequence (4 hex digits: dddd) 
+1

Tak więc, jeśli łańcuch został właśnie wygenerowany i nie mogę zmienić tego, co jest generowane, jak mogę uciec od wszystkich cytatów w tym łańcuchu, jak sądzę, jest to moje pytanie? Dzięki! –

1

Musisz uciec je tak:

var foo = '\'foo\''; 

Więc, jeśli ciąg źródłowy ma apostrofów wymienić każdy pojedynczy cytat z ukośnikiem i pojedynczym cytatu.

15

Uciekając je dla HTML:

var escapedString = string.replace(/'/g, "'").replace(/"/g, """); 

Uciekając je dla kodu JS:

var escapedString = string.replace(/(['"])/g, "\\$1"); 
Powiązane problemy