Bazı JavaScript varyasyonlarının değerlendirildiği bir projem var. Dizenin kaçması gerektiğinden (yalnızca tek tırnak), aynı kodu bir test işlevine yazdım. Oldukça basit JavaScript kodu aşağıdaki bit var:JavaScript değerlendirmesinde JavaScript dilinde tek tırnaklardan kaçınma
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);
}
Ve sürerek bunu bildirmek istiyoruz: fsdsd'4565sd
. Eğer karakter doğru kaçan yapmıyoruz gibi de görünüyor
strInputString = strInputString.replace(...
:
Göreceli olarak daha güvenli bir yaklaşım olabilir, var strResult = eval ("(" + strInputString + ")"); '. Ayrıca, 'STRING' değişmez, yani string.replace() '** değiştirilen sonucu ** döndürür, ** dizgeyi değiştirmez. – Passerby
http://jsfiddle.net/ebTtp/ – ssilas777