【发布时间】:2025-12-28 20:25:13
【问题描述】:
我正在从 URL 中编码的文本区域解析多行值:
// 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,'":"') + '"}');
但是每当我在上面的d= URL 参数中有一个多行文本值时,我就会从JSON.parse() 函数中得到一个Syntax Error: Unexpected token... 错误:
&d=asdf%0A%0Aasdf
我需要做什么.replace() 正则表达式模式来处理换行编码%0A?
编辑:
我已经成功地将 URL 参数转换为 javascript 对象。问题是内部的replace([pattern match]) 函数被多行文本字符阻塞:%0A。
【问题讨论】:
-
你为什么首先使用
JSON.parse?这不是 JSON 格式的字符串。 -
我正在将 URL 参数转换为 json 对象。
-
没有。它已经可以很好地解析为 JSON 对象。问题具体是如何成功解码换行码。
标签: javascript json regex urlencode