Dovete fuggire ogni \
per essere \\
:
var ttt = "aa ///\\\\\\";
Aggiornato: Penso che questa domanda non riguarda il carattere di escape nella stringa a tutti. Il richiedente non sembra spiegare il problema correttamente.
because you had to show a message to user that user can't give a name which has (\) character.
penso che lo scenario è simile:
var user_input_name = document.getElementById('the_name').value;
Poi il richiedente vuole verificare se user_input_name
contiene alcun [\
]. Se è così, avvisa l'utente.
Se l'utente immette [aa ///\
] nella casella di input HTML, quindi se si alert(user_input_name)
, verrà visualizzato [aaa ///\
]. Non è necessario fuggire, cioè sostituire [\
] in [\\
] nel codice JavaScript. Quando esegui l'escaping, significa che stai cercando di creare una stringa che contiene caratteri speciali nel codice sorgente JavaScript. Se non lo fai, non verrà analizzato correttamente. Poiché hai già una stringa, non è necessario trasferirla in una funzione di escape. Se lo fai, suppongo che tu stia generando un altro codice JavaScript da un codice JavaScript, ma non è questo il caso.
Sto supponendo che il richiedente voglia simulare l'input, in modo che possiamo capire il problema. Sfortunatamente, il richiedente non capisce bene JavaScript. Pertanto, un codice di errore di sintassi essendo alimentato a noi:
var ttt = "aa ///\";
Quindi, si assumono la richiedente avendo problema della fuoriuscita.
Se si desidera simulare, il codice deve essere valido al primo posto.
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?
Ora, avete solo bisogno di fare è
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();
}
Edit: ho usato []
citare il testo da visualizzare, quindi sarebbe meno confuso rispetto all'utilizzo ""
.
scackoverflow spogliare il mio 1 slashe da ogni dove, anche in() c'era 1 barra (\\). la sequenza reale di slash è 3 barre in una variabile – Imrul
Da dove viene la stringa di input? Proviene dal browser stesso (utente inserito) o dal back-end (inserito da PHP/Perl/Ruby/etc ..)?Lo chiedo perché sembra che tu stia cercando di usare javascript per risolvere tutto ciò che non ha assolutamente senso. Tutte le stringhe che provengono dall'utente digitato direttamente nel browser sono già state scappate quindi non è necessario eseguire alcuna operazione di escape. L'unico problema sarebbe quello che viene recuperato nel back-end. – slebetman
sì, è nell'input dell'utente dall'input HTML archiviato nel browser e la manipolazione è non utilizzare javascript. Io uso ASP.NET (C#) nel back-end. Non esiste alcuna funzione 'addslashes' in ASP.NET. Se questo può essere risolto in Lato server, allora va bene anche per me. – Imrul