Tôi có một dự án, trong đó một số biến thể JavaScript được đánh giá. Vì chuỗi cần phải được thoát (chỉ có dấu nháy đơn), tôi đã viết chính mã giống nhau trong một hàm kiểm tra. Tôi có chút sau mã JavaScript khá đơn giản:Thoát dấu nháy đơn trong chuỗi JavaScript để đánh giá 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);
}
Và tôi muốn thông báo với nó, nói: fsdsd'4565sd
.
Cách tiếp cận tương đối an toàn hơn có thể là 'var strResult = eval (" ("+ strInputString +") ");'. Ngoài ra, 'STRING' là không thay đổi, do đó' string.replace() '** trả về ** kết quả được thay thế, chứ không phải ** sửa đổi ** chuỗi. – Passerby
Đây có phải là những gì bạn mong đợi http://jsfiddle.net/ebTtp/ – ssilas777