js获取cookie 和 模仿php的&_GET方法

//获取get参数
function _get(name){
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
var data = window.location.search.substr(1).match(reg);
return data!=null?decodeURIComponent(data[2]):null;
} //获取指定名称的cookie
//正则解析
//(^| ) 匹配开头或者空格
//([^;]*) 匹配除了;号外的任意字符 任意次
//(;|$) 匹配;或者文本结尾

function getCookie(name){
  var reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
  var arr = document.cookie.match(reg);
  return arr?decodeURIComponent(arr[2]):null;
}

1.正则解释
()表示一个子表达式 1.在被修饰匹配次数的时候,括号中的表达式可以作为整体被修饰2.取匹配结果的时候,括号中的表达式匹配到的内容可以被单独得到
(^|&) 分枝条件,匹配字符串开头或者&字符
([^&]*) 匹配除了&之外的字符0次或多次 相当于 {0,}
(&|$) 匹配字符串结尾或者&字符
2.match() 方法
stringObject.match(regexp)
如果 regexp 没有标志 g:
1)没有匹配到内容则返回null
2)匹配到了之后则返回一个数组arr
arr[0] => 匹配文本
其余的是正则表达式的子表达式匹配的文本
3)附带两个属性
index:匹配文本在的位置
input:对stringObject的引用
如:
var str = "aaa=111&bbb=222&ccc=333&callback=123";
var name = 'aaa';
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
var rs = str.match(reg);
console.log(rs);
//输出 ["aaa=111&", "", "111", "&", index: 0, input: "aaa=111&bbb=222&ccc=333&callback=123"]
上一篇:HTML基础(四)——设置超链接的样式示例


下一篇:[Android]使用RecyclerView替代ListView(三)