2016-02-12 6 views
6

Was getan werden muss, um alle Anführungszeichen in einem String mit Backslashes zu vermeiden, so dass sie keine Javascript-Fehler verursachen.Escape Single und Double Quotes - JQuery oder Javascript

Manche Dinge wie diese -

This is 'just a" test string. 

Ergebnis sein sollte -

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

Ich verstehe nicht: Sie scheinen zu fragen, wie man eine bereits existierende Zeichenkette ändert, und tatsächlich haben Sie eine Antwort akzeptiert, die einen .replace() auf den bereits in einer JS-Variablen vorhandenen Wert anwendet. Aber warum ist die Flucht an diesem Punkt notwendig? Sie sagten * "damit sie keine Javascript-Fehler verursachen" *, aber welche Fehler könnten sie verursachen? Das Konzept des Entweichens von Anführungszeichen ist normalerweise nur für String-Literale relevant. – nnnnnn

Antwort

7

Für Apostrophe

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

Für Doppel-Zitate

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

für Einzel- und Doppel

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

Lovely ... es hat funktioniert :-) Vielen Dank ... Sie sind erstaunlich –

2

Ich weiß nicht, wie Sie beide geraten in einen String :), aber versuchen, diese

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

ähnlich

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

Sie kann beide

str = str.split("\"").join("\\\"").split("'").join("\\'"); 
kombinieren