xrfragment-haxe/src/xrfragment/Url.hx

32 lines
1,007 B
Haxe
Raw Normal View History

2023-03-09 22:32:28 +01:00
package xrfragment;
2023-03-09 22:39:59 +01:00
@:expose // <- makes the class reachable from plain JavaScript
@:keep // <- avoids accidental removal by dead code elimination
2023-03-09 22:32:28 +01:00
class Url {
2023-03-09 22:39:59 +01:00
@:keep
2023-03-09 22:32:28 +01:00
private static var map:Map<String, String>;
2023-03-09 22:39:59 +01:00
@:keep
2023-03-09 22:32:28 +01:00
private static function parseQueryMap(qs:String):Map<String, String> {
var splitArray:Array<String> = qs.split('&');
var regexPlus = ~/\+/g; // Regex for replacing addition symbol with a space
var resultMap = new Map<String,String>();
for (i in 0...splitArray.length) {
var splitByEqual = splitArray[i].split('=');
var key:String = splitByEqual[0];
if (splitByEqual.length == 1) {
// ..&a=&b.. (right side blank)
resultMap.set(key, "");
} else {
var value:String = StringTools.urlDecode(regexPlus.split(splitByEqual[1]).join(" "));
resultMap.set(key, value);
}
}
return resultMap;
}
}