//获取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"]