如何";逃逸;POST请求中逗号分隔列表中的逗号
how to "escape" a comma in a comma-separated list in a POST request?
编辑:API开发人员通过使用另一个分隔符并在请求中指定它来提供解决方案(请参阅下面我对自己问题的回答(
我正在向RESTful API发送POST请求,这需要一个由命令分隔的参数列表:
var request = require('request-promise'); //promisified npm request
// the list of names is huge
// those names are stored in a MongoDB database
// the namesList is generated programmatically before the request
var namesList = "name1,name2,name3,name4"
var requestOptions = {
method: 'POST',
uri: 'https://myAPI/someEndPoint/',
body: {
key: myAccessKey,
names: namesList
},
json: true
};
request(requestOptions)
.then( () => {_do_something_} );
它适用于大多数名称,但其中一些名称包含逗号:
var arrayNames = ["foo bar", "barfoo", "stupid, comma", "dammit"];
// is converted by my code in :
var namesList = "foo bar,barfoo,stupid, comma, dammit";
这不可避免地会导致错误的列表被发送到API。。。那么,当我从数组生成列表时,有没有一种方法可以通过编程方式"转义"错误的逗号?
API开发人员期待已久的答案已经到来(不久前发送了一封电子邮件(,解决方案既简单又高效:只需使用另一个分隔符:
var namesList = "name1;name2;name3;name4" // use ';' instead of ',' here...
var requestOptions = {
method: 'POST',
uri: 'https://myAPI/someEndPoint/',
body: {
key: myAccessKey,
names: namesList,
delimiter: ';' // and specify the delimiter there !
},
json: true
};
request(requestOptions)
.then( () => {_do_something_} );
我不知道delimiter
字段是这个API的标准字段还是特定字段,但它非常适合我的用例!
您可以遍历正在发送的列表,将逗号括在带双引号的字符串中。然后在服务器端处理这些双引号。这将保持您的列表完整性
使用类似的东西来替换subString:
str = str.replace(/,/g, '","');
在服务器端,您可以忽略所有用双引号括起来的逗号。
尝试
var namesList = arrayNames.map(function(val) { return val.replace(',', ''',');}).toString();
相关文章:
- 如何将逗号分隔的列表转换为<ul>列表
- 检查变量并将它们添加到逗号分隔的列表中
- 用于在列表中进行多重搜索的正则表达式,用逗号分隔
- jQuery查找元素,然后组成逗号分隔的列表
- 正则表达式用于逗号分隔浮点数的列表
- javascript 正则表达式验证列表以逗号分隔
- 如何从 JSON 响应中获取逗号分隔的列表
- jQuery 手机间隙:- 列表视图中的自动分隔器是否正常工作
- 使用复选框过滤 angularjs 中的数据,并在逗号分隔的列表中显示在文本框内
- 将空格分隔的类列表转换为 Jquery 选择器的有效方法
- 将逗号分隔列表转换为无序列表
- 如何制作正则表达式以匹配逗号分隔的列表,列表中最多包含 5 个项目
- 帆.js如何修改路由以插入逗号分隔的 ID 列表
- 从具有不同值的逗号分隔JSON对象填充html下拉列表
- Regex替换逗号分隔列表中的单词
- Angular JS上的联系人列表分隔
- 在angularjs中从逗号分隔的字符串列表中分割和映射数组
- jQuery从逗号分隔的列表中选择ID
- 从/到文本框输入和输出逗号分隔的列表
- 从我的查询中为JavaScript创建逗号分隔列表