1.中括号里加上尖号是“非”的意思
非字母的写法 [^a-zA-Z]
2. 获取url请求中参数的值。
params.param=params.param.replace(/([^?&=]+)=([^?&=]*)/g,function (ars, a, b) {
if(/[\u4e00-\u9fa5]+/g.test(b))b=encodeURI(b)//如果是中文 转码
return a+"="+b;
})
其中,//g内的是正则,中括号中的上尖号代表非,[^],所以[^?&=]代表除了?&=之外的任意字符,[^?&=]+代表:‘至少一个除了?&=之外的任意字符’。等号=右边[^?&=]*代表0或者多个‘除了?&=之外的任意字符’
/([^?&=]+)=([^?&=]*)/g
所以,下面这个url请求,匹配的结果是:
roleName=测试角色名 、roleId=331 、 roleDesc=测试描述
http://XXXXXX/editRole?roleName=测试角色名&roleId=331&roleDesc=测试描述&callback=__jp27