คำอธิบายวิธี:
แปลงสตริงเป็นวัตถุ เพื่อให้มันตรงไปตรงมาจริง ๆ แล้วมันคือการแปลงสตริงพารามิเตอร์บน URL เป็นวัตถุอาร์เรย์ (คุณสามารถบอกได้โดยดูตัวอย่าง)
ไวยากรณ์:
การคัดลอกรหัสมีดังนี้:
querystring.parse (str, [ก.ย. ], [eq], [ตัวเลือก])
รับพารามิเตอร์:
str
SEP ตั้งค่าตัวคั่นค่าเริ่มต้นคือ '&'
Eq ตั้งค่าอักขระการกำหนดค่าเริ่มต้นคือ '='
[ตัวเลือก] MaxKeys ความยาวสูงสุดของสตริงที่สามารถยอมรับได้ค่าเริ่มต้นคือ 1,000
ตัวอย่าง:
การคัดลอกรหัสมีดังนี้:
querystring.parse ('foo = bar & baz = qox & baz = quux & corge')
// ส่งคืน
{foo: 'bar', baz: ['qox', 'quux'], corge: ''}
ซอร์สโค้ด:
การคัดลอกรหัสมีดังนี้:
// แยกวิเคราะห์คีย์ = Val String
queryString.parse = queryString.decode = ฟังก์ชั่น (QS, SEP, EQ, ตัวเลือก) {
ก.ย. = ก.ย. || -
eq = eq || -
var obj = {};
if (! util.issTring (qs) || qs.length === 0) {
คืน OBJ;
-
var regexp = //+/g;
qs = qs.split (ก.ย. );
var maxkeys = 1,000;
if (ตัวเลือก && util.isnumber (ตัวเลือก maxkeys)) {
maxKeys = opotions.maxKeys;
-
var len = qs.length;
// MaxKeys <= 0 หมายความว่าเราไม่ควร จำกัด จำนวนคีย์
if (maxkeys> 0 && len> maxkeys) {
LEN = MaxKeys;
-
สำหรับ (var i = 0; i <len; ++ i) {
var x = qs [i]. แทนที่ (regexp, '%20')
idx = x.indexof (eq)
KSTR, VSTR, K, V;
if (idx> = 0) {
kstr = x.substr (0, idx);
vstr = x.substr (idx + 1);
} อื่น {
kstr = x;
vstr = '';
-
พยายาม {
k = decodeuricomponent (KSTR);
v = decodeuricomponent (VSTR);
} catch (e) {
k = querystring.unescape (kstr, true);
v = querystring.unescape (vstr, true);
-
if (! hasownproperty (obj, k)) {
obj [k] = v;
} อื่นถ้า (util.isarray (obj [k])) {
obj [k] .push (v);
} อื่น {
obj [k] = [obj [k], v];
-
-
คืน OBJ;
-