2016-02-12 6 views
6

Co należy zrobić, aby uniknąć wszystkich cudzysłowów w ciągu znaków z ukośnikami odwrotnymi, aby nie powodowały błędów JavaScript.Escape Single i Double Quotes - JQuery lub Javascript

Niektóre rzeczy jak ta -

This is 'just a" test string. 

wynik powinien być -

This is \'just a\" test string. 
+0

Nie rozumiem: wydajesz się pytać, jak zmodyfikować ciąg znaków, który już istnieje, i rzeczywiście zaakceptowałeś odpowiedź, która robi .replace() na wartości już w zmiennej JS. Ale dlaczego ucieczka jest konieczna w tym momencie? Powiedziałeś "tak", że nie powodują one żadnych błędów Javascript, ale jakie błędy mogą powodować? Pojęcie wycinania cudzysłowów ma zwykle znaczenie tylko w przypadku literałów ciągów. – nnnnnn

Odpowiedz

7

Dla apostrofów

str = str.replace(/(['])/g, "\\$1"); 

Dla cudzysłowach

str = str.replace(/(["])/g, "\\$1"); 

zarówno dla pojedynczego i cudzysłowy

str = str.replace(/(['"])/g, "\\$1"); 
+1

Piękny ... zadziałało :-) Wielkie dzięki ... Jesteś niesamowity –

2

Nie wiem, jak można dostać zarówno w jeden ciąg :) jednak spróbować tego

var str = "This is 'just a test string."; 
str = str.split("'").join("\\'"); \\outputs "This is \'just a test string." 

podobnie

var str = 'This is "just a test string.'; 
str = str.split("\"").join("\\\""); \\outputs "This is \"just a test string." 

ty można łączyć zarówno