Wie füge ich Schrägstriche in eine Zeichenfolge in Javascript?
-
25-09-2019 - |
Frage
Nur eine Zeichenfolge. Hinzufügen \‘, um es jedes Mal gibt es einen Apostroph.
Lösung
replace
arbeitet für das erste Zitat, so benötigen Sie einen kleinen regulären Ausdruck:
str = str.replace(/'/g, "\\'");
Andere Tipps
Nach JavaScript Funktion behandelt‘,“, \ b, \ t, \ n \ f oder \ r äquivalent von PHP-Funktion addslashes ().
function addslashes(string) {
return string.replace(/\\/g, '\\\\').
replace(/\u0008/g, '\\b').
replace(/\t/g, '\\t').
replace(/\n/g, '\\n').
replace(/\f/g, '\\f').
replace(/\r/g, '\\r').
replace(/'/g, '\\\'').
replace(/"/g, '\\"');
}
kann ein String umfassend sein entkommen und kompakt mit JSON.stringify. Es ist ein Teil von JavaScript wie die ECMAScript 5 und von großen neueren Browser-Versionen unterstützt.
str = JSON.stringify(String(str));
str = str.substring(1, str.length-1);
Mit diesem Ansatz, auch Sonderzeichen wie der Null-Byte, Unicode-Zeichen und Zeilenumbrüche \r
und \n
ordnungsgemäß in einer relativ kompakten Aussage entkam.
Um sicher zu sein, müssen Sie nicht nur die einfachen Anführungszeichen ersetzen, sondern auch die bereits entkam die:
"first ' and \' second".replace(/'|\\'/g, "\\'")
Eine Antwort, die Sie nicht danach fragen haben kann hilfreich sein, wenn Sie den Austausch in der Vorbereitung tun für das Senden der Zeichenkette in alert () -. Oder irgendetwas anderes, wo ein einzelnes Anführungszeichen könnten Sie stolpern
str.replace("'",'\x27')
Das wird wieder alle einfachen Anführungszeichen mit dem Hex-Code für Apostroph.
var myNewString = myOldString.replace(/'/g, "\\'");
var str = "This is a single quote: ' and so is this: '";
console.log(str);
var replaced = str.replace(/'/g, "\\'");
console.log(replaced);
Gibt Ihnen:
This is a single quote: ' and so is this: '
This is a single quote: \' and so is this: \'
if (!String.prototype.hasOwnProperty('addSlashes')) {
String.prototype.addSlashes = function() {
return this.replace(/&/g, '&') /* This MUST be the 1st replacement. */
.replace(/'/g, ''') /* The 4 other predefined entities, required. */
.replace(/"/g, '"')
.replace(/\\/g, '\\\\')
.replace(/</g, '<')
.replace(/>/g, '>').replace(/\u0000/g, '\\0');
}
}
Verbrauch: alert (str.addSlashes ());