通过url传递参数时,如何获取全部参数
来源:互联网 发布:卖les衣服的淘宝商城 编辑:程序博客网 时间:2024/06/09 18:14
一、通过url传递参数时,如何获取全部参数
在angularJS中的代码块:
$scope.getUrlParams = function (url){ var params = {}, arr; var hash = url.slice(url.indexOf('?')+1).split('&'); for(var i = 0; i < hash.length; i++) { arr = hash[i].split('='); params[arr[0]] = arr[1]; } return params; }
通过返回的JSON对象可以直接取出对应参数的值。
例如取出url中名为”errormsg”的参数值:
$scope.getResultFromInterface = function(result){var params = $scope.getUrlParams(result);var errormsg = params.errormsg;
二、获取url传递的参数中含有中(日)文的参数值
url在传递含有中(日)文的参数时,会先通过encode()方法进行编码。
之后接收方再通过decode()方法进行解码,以符合url规范。
本例中,如果”errormsg”含有中文,则接受时应对其进行解码:
var errormsg = decode(params.errormsg);
三、遇到的一个未解决问题:
在接收url传递的参数时,之前考虑的是运用正则表达式的方法来获取。
通过遍历”=”以及其左右值来取出”A=a”形式的参数集。
正则表达式代码如下:
$scope.getParamValue = function(url, param){ var pattern = /(\w+)=(\w+)|(\w+)=\[[\s\S]*\]/g; var parames = {}; // a代表url,b代表等号左边,c代表等号右边 url.replace(pattern, function(a, b, c){ if(a.match(/(\w+)=\[[\s\S]*\]/g)){ var d=a.split("="); parames[d[0]]=d[1]; } else { parames[b] = c; } }); return parames[param]; };
pattern的正则表达式指的是所有“A=a”的形式。
给对象parames赋值时也是A=a”的形式,不过等号左右的值替换。
if(a.match(/(\w+)=[[\s\S]*]/g)){ 那这个判断的意思是 匹配所有的“A=a”的形式么?
是的话岂不是永远不会走else?
那”&”符号和”?”符号这些东西不用管么?
该方法在接收英文参数时是正确的,但是接收encode后的(或者没有encode)中文字符就会出现接收不到。
目前正在寻找答案中。。。
0 0
- 通过url传递参数时,如何获取全部参数
- jsp通过url传递和获取参数
- JS通过Url传递中文参数,c#获取参数
- ClickOnce 通过URL传递参数
- 通过URL Scheme传递参数
- 通过URL Scheme传递参数
- 通过url路径传递参数
- 通过JS获取url传递的参数(html可用)
- JS获取URL传递参数
- js获取url传递参数
- js获取url传递参数
- js获取url传递参数
- js获取url传递参数
- js获取url传递参数
- js获取url传递参数
- js获取url传递参数
- js获取url传递参数
- js获取url传递参数
- android:versionCode和android:versionName 用途
- 安卓第11记,创建超级链接的方法
- How to Registe A Twitter Account
- 美国军方军用软件剖析
- 钽电容封装
- 通过url传递参数时,如何获取全部参数
- java整合discuz论坛同步注册同步登录小结
- Linux常用命令
- Chapter2 Getting Started
- ppt文件格式在线转换成pdf
- json返回date类型转为字符串
- 数学之路-python数据处理(2)
- java排序的方法
- 办事原则(都是经验啊)