Javasrcipt中从一个url或者从一个字符串中获取参数值得方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Javasrcipt中从一个url或者从一个字符串中获取参数值得方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1809字,纯文字阅读大概需要3分钟。
内容图文
从url中获取参数值是che程序开发过程中的常用需求,偶然得闲,便抽空研究了一下javasrcipt下,获取参数的办法(JAVA中也类似)。
首先看url的规范:
URL组成:
protocol :// hostname[:port] / path / [;parameters][?query]#fragment
协议://主机名[:端口]/ 路径/[:参数] [?查询]#Fragment
一个规范的url参数总是在【?query】部分,以 “变量名=值”这样的形式存在;
这样就给我们取值提供了一个思路:
第一种方法:利用正则表达式,从url中获取我们需要的对应的参数的值
1
function
getUrlPramByName(name){
2
var url = window.location.search; //获取url中?之后的内容 3var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
4if(url){
5var r = url.substr(1).match(reg);
6 7if (r != null) {
8return decodeURI(r[2]);
9 }else{
10returnnull;
11 }
12 };
13 };
可以自己在浏览器控制台执行下,这种方法只能单独使用,获取自己需要的那个参数值得变量
第二种方法: 利用字符串操作将所需要的值全部提出来
function
getAllUrlPram(){
var url = window.location.search; //获取url中?后面的内容if(url && url.indexOf("?")!= -1){
url = url.substr(1); //去掉前面的?var arr = url.split("&"); //将字符串以&为分隔符转化为数组var obj = {}; //定义一个空对象for(var i=0;i<arr.length;i++){
var str0 = arr[i].split("=")[0], //将获得数组中的每一个元素字符串转换成用"="分割的数组,数组第一个元素即为key
str1 = arr[i].split("=")[1]; //将获得数组中的每一个元素字符串转换成用"="分割的数组,数组第一个元素即为value
obj[str0] = decodeURI(str1); //由于url中使用的是转义后的字符,因此必须使用decodeURI进行解码 }
return obj;
}else {
returnnull;
}
}
这样我们可以定义一个在String原型链上的通用方法了:
String.prototype.getUrlParms = function(){
var index = this.indexOf("?");
if(index !=-1){
var str = this.substr(index+1);
var arr = str.split("&"); //将字符串以&为分隔符转化为数组var obj = {}; //定义一个空对象for(var i=0;i<arr.length;i++){
var str0 = arr[i].split("=")[0], //将获得数组中的每一个元素字符串转换成用"="分割的数组,数组第一个元素即为key
str1 = arr[i].split("=")[1]; //将获得数组中的每一个元素字符串转换成用"="分割的数组,数组第一个元素即为value
obj[str0] = decodeURI(str1); //由于url中使用的是转义后的字符,因此必须使用decodeURI进行解码 }
return obj;
}else{
return;
}
}
最终对字符串执行 getUrlParms()方法后,就会得到一个包含所有需要的参数和参数对应的值得对象了;
原文:https://www.cnblogs.com/liquanjiang/p/8642356.html
内容总结
以上是互联网集市为您收集整理的Javasrcipt中从一个url或者从一个字符串中获取参数值得方法全部内容,希望文章能够帮你解决Javasrcipt中从一个url或者从一个字符串中获取参数值得方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。