Ho un progetto, in cui viene valutata una variabile JavaScript. Poiché la stringa deve essere sfuggita (solo virgolette singole), ho scritto lo stesso codice esatto in una funzione di test. Ho la seguente pezzo di piuttosto semplice codice JavaScript:Escaping di virgolette singole nella stringa JavaScript per la valutazione JavaScript
function testEscape() {
var strResult = "";
var strInputString = "fsdsd'4565sd";
// Here, the string needs to be escaped for single quotes for the eval
// to work as is. The following does NOT work! Help!
strInputString.replace(/'/g, "''");
var strTest = "strResult = '" + strInputString + "';";
eval(strTest);
alert(strResult);
}
E voglio avvertire, dicendo: fsdsd'4565sd
.
Un approccio relativamente più sicuro potrebbe essere 'var strResult = eval (" ("+ strInputString +") ");'. Inoltre, 'STRING' è immutabile, quindi' string.replace() '** restituisce ** il risultato sostituito, non ** modifica ** la stringa. – Passerby
È questo che ti aspetti http://jsfiddle.net/ebTtp/ – ssilas777