如何逃避odata过滤器uri中的单引号?

时间:2013-10-11 13:17:44

标签: javascript escaping odata quote

我在用JS编写查询时试图逃避单引号:

_value.replace(/'/g,'%27')

这样:

_value.replace(/\'/g,'\\\'');

两者似乎都不起作用

你可以在这里看到一个例子: ?http://services.odata.org/V3/Northwind/Northwind.svc/Orders $选择=货运,客户id&安培; $滤波器=货主+当量+ 'B的%20Beverages' 和; $格式= JSON

有谁知道如何逃避单引号?

由于

3 个答案:

答案 0 :(得分:11)

单引号需要加倍,例如:

ShipName+eq+'B''sBeverages'

而不是

ShipName+eq+'B'sBeverages'

答案 1 :(得分:0)

使用此代码替换单引号...其工作..

_value.replace(/'/g, '%27%27')

答案 2 :(得分:0)

根据http://docs.oasis-open.org/odata/odata/v4.01/cs01/part2-url-conventions/odata-v4.01-cs01-part2-url-conventions.html#sec_URLComponents

的示例3

您需要用引号将引号转义(也不要忘记处理&:编码为%26)

因此“位和鲍勃”变成了“位%26鲍勃”