getParam static method
Implementation
static Map<String, dynamic> getParam(String url) {
//support '/:iid=3/:iid1=2'
//var regExp = RegExp('(/:[sid][^=]+)(=[^/]+)');
//这样支持‘/:iid=3:iid1=2'这样每节两个参数
var regExp = RegExp('(:[sid][^=]+)(=[^/^:]+)');
var result = regExp.allMatches(url);
Map<String, dynamic> args = <String, dynamic>{};
for (RegExpMatch match in result) {
//only one param:
//var argName = match.group(1)!.substring(3);
//var argType = match.group(1)![2];
var argName = match.group(1)!.substring(2);
var argType = match.group(1)![1];
var argValue = match.group(2)!.substring(1); //去掉等号
dynamic value;
if (argType == 'i') value = int.tryParse(argValue);
if (argType == 'd') value = double.tryParse(argValue);
if (argType == 's') value = argValue;
//注意这里还是用url相同的参数名,容易理解些。
args[argType + argName] = value;
}
return args;
}