12

首先,我没有做太多的 JavaScript 并且是一个完整的新手,现在已经不碍事了。我有一个小问题我试图从我的搜索应用程序中的用户输入中转义引号:

function getQString()
{
var query_str = 'q=' + $('input[name=q]').val().trim();
return  query_str;
}

这是作为 gsp 文件中的一个方法完成的,是否有与 JavaScript 中的 .escape() 等效的东西?

这个查询后来被发送到弹性搜索,并且由于引号特别是像 a"b..

我正在使用 ES 0.20.6

4

1 回答 1

16
query_str = query_str.replace(/"/g, '\\\"');

..将导致;"\"

或者

query_str = query_str.replace(/"/g, '\\\\\"');

..将导致;"to \\",这将使打印的报价仍然被转义到\"

此代码;

var test = 'asdasd " asd a "';

console.log(test.replace(/"/g, '\\\"'));
console.log(test.replace(/"/g, '\\\\\"'));

..输出;

asdasd \" asd a \"
asdasd \\" asd a \\"

您可以根据最终解释器读取字符串并将其打印出来的方式来调整替换。

于 2013-04-08T11:23:54.540 回答