javascript 用正则表达式取cookie值,请帮解释下代码?

ynduanlian 2015-06-15 11:00:09

function getCookie(name)//取cookies函数
{
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null) return unescape(arr[2]);
return null;
}


请问为什么返回值从 arr[2]去取?
...全文
363 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hch126163 2015-06-16
  • 打赏
  • 举报
回复
正则() 表示匹配组 document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)")); (^| ) 第一组 [1] ([^;]*) 第二组 [2] [0] 是匹配到的字符串
tommercatfly 2015-06-15
  • 打赏
  • 举报
回复
str.match(/\d+/g)这样写就可以,加g不加g的区别是 加上g表示匹配全文,找出所有匹配搭配的项目。 不加g表示匹配全文,但只找出第一次比配到的值。
ynduanlian 2015-06-15
  • 打赏
  • 举报
回复
<html>
<body>
<script type="text/javascript">
var str="1 plus 2 equal 3";
var arr=str.match(/\d+/);
document.writeln(arr[0]);
document.writeln(arr[1]);
document.writeln(arr[2]);
</script>
</body>
</html>
结果居然是:1 undefined undefined 为什么这里的arr[2]又取不到了?

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧