Sie haben zu entkommen jeder \
\\
sein:
var ttt = "aa ///\\\\\\";
Aktualisiert: Ich denke, diese Frage nicht über die Escape-Zeichen in Zeichenfolge ist überhaupt nicht. Der Fragesteller scheint das Problem nicht richtig zu erklären.
because you had to show a message to user that user can't give a name which has (\) character.
ich glaube, das Szenario wie ist:
var user_input_name = document.getElementById('the_name').value;
Dann wird der Fragesteller prüfen möchte, ob user_input_name
enthält jede [\
]. Ist dies der Fall, warnen Sie den Benutzer.
Wenn der Benutzer [aa ///\
] im HTML-Eingabefeld eingibt, werden Sie unter alert(user_input_name)
[aaa ///\
] sehen. Sie müssen nicht entkommen, d. H. Ersetzen [\
] als [\\
] in JavaScript-Code. Wenn Sie fliehen, liegt das daran, dass Sie versuchen, eine Zeichenfolge zu erstellen, die Sonderzeichen in JavaScript-Quellcode enthält. Wenn Sie es nicht tun, wird es nicht korrekt geparst werden. Da Sie bereits eine Zeichenfolge erhalten, müssen Sie sie nicht in eine Escape-Funktion übergeben. Wenn Sie dies tun, schätze ich, dass Sie einen anderen JavaScript-Code aus einem JavaScript-Code generieren, aber das ist hier nicht der Fall.
Ich vermute, Asker will die Eingabe simulieren, damit wir das Problem verstehen können. Leider versteht asker JavaScript nicht gut. Daher wird uns ein Syntaxfehlercode geliefert:
Daher nehmen wir an, dass der Fragesteller Probleme mit dem Entkommen hat.
Wenn Sie simulieren möchten, müssen Sie an erster Stelle gültig sein.
var ttt = "aa ///\\"; // <- This is correct
// var ttt = "aa ///\"; // <- This is not.
alert(ttt); // You will see [aa ///\] in dialog, which is what you expect, right?
Nun Sie nur tun müssen, ist
var user_input_name = document.getElementById('the_name').value;
if (user_input_name.indexOf("\\") >= 0) { // There is a [\] in the string
alert("\\ is not allowed to be used!"); // User reads [\ is not allowed to be used]
do_something_else();
}
bearbeiten: Früher habe ich []
Text zu zitieren gezeigt werden, so wäre es weniger verwirrt als ""
verwenden.
scackoverflow meines 1 slashe Streifen, auch in() gibt es einen Schrägstrich (\\) verwenden müssen. Die tatsächliche Schrägstrichfolge besteht aus 3 Schrägstrichen in einer Variablen – Imrul
Woher kommt die Eingabezeichenfolge? Ist es vom Browser selbst (Benutzer eingegeben) oder vom Backend (eingefügt von PHP/Perl/Ruby/etc ..)?Ich frage, weil es so aussieht, als würden Sie Javascript verwenden, um das zu lösen, was völlig sinnlos ist. Alle Strings, die vom Benutzer kommen und direkt im Browser eingegeben werden, sind bereits mit Escape-Zeichen versehen, so dass Sie keine Escapes ausführen müssen. Das einzige Problem wäre, was im Backend abgerufen wird. – slebetman
Ja, es ist in Benutzereingabe von HTML-Eingabe im Browser abgelegt und Manipulation ist nicht mit Javascript. Ich benutze ASP.NET (C#) im Backend. Es gibt keine "addslashes" -Funktion in ASP.NET. Wenn dies auf der Serverseite gelöst werden kann, ist es auch für mich in Ordnung. – Imrul