我正在解析来自URL中编码的textarea的多行值:
// URL Params:
?cn=asdf%20asdf&pn=asdf%20asdf&pe=asdf%40example.com&d=asdf%0A%0Aasdf&ye=test%40example.com&c=1234&tc=true
// JAVASCRIPT
var _url = window.location.href;
var _queryParams = decodeURIComponent( _url.split('?')[1] );
var _search = _queryParams;//location.search.substring(1);
var _data = JSON.parse('{"' + decodeURI(_search).replace(/"/g, '\\"').replace(/&/g, '","').replace(/=/g,'":"') + '"}');
但是,只要我在上面的Syntax Error: Unexpected token...
网址参数中有多行文字值,我就会从JSON.parse()
函数收到d=
错误:
&d=asdf%0A%0Aasdf
我需要做什么.replace()
正则表达式来处理换行符编码,%0A
?
编辑:
我已经成功将URL参数转换为javascript对象。问题是内部的replace([pattern match])
函数对mutliline文本字符窒息:%0A
。
答案 0 :(得分:1)
使用URLSearchParams
解析查询字符串,然后使用URLSearchParams
的{{1}}方法将其转换为普通的Javascript对象,然后对其进行字符串化以将其转换为JSON-格式化字符串:
entries