有人可以解释这个正则表达式的作用吗?
document.cookie.match(/cookieInfo=([^;]*).*$/)[1]
如果我能删除我在cookieInfo值中看到的双引号,那也很棒。即当cookieInfo =“xyz + asd”时 - 我想使用上面的正则表达式删除双引号。
答案 0 :(得分:2)
它基本上是说抓住尽可能多的不是分号的字符,然后跟在字符串'cookieInfo ='
之后试试这个以消除双引号:
document.cookie.match(/cookieInfo="([^;]*)".*$/)[1]
答案 1 :(得分:0)
正则表达式匹配以'cookieInfo ='开头的字符串,然后捕获0个或更多非非半列字符,后跟0或更多'anythings'。
要删除双引号,您可以使用正则表达式/“/并将其替换为空字符串。
答案 2 :(得分:0)
它在document.cookie字符串中搜索cookieInfo=
接下来,它抓取所有不是;
的字符(直到它到达第一个分号)。
[...]
里面包含的所有字符集。
[^...]
所有与
然后它让RegEx搜索所有其他字符。
.*
任何字符,0次或更多次。
$
字符串的结尾(或在某些特殊情况下,行尾)。
您可以用几种不同的方式替换"
,但不是将其填充到正则表达式中,我建议在事后对其进行替换:
var string = document.cookie.match(...)[1],
cleaned_string = string.replace(/^"|"$/g, "");
第二个正则表达式是“查看字符串的开头,查看是否有"
,或者查看字符串的结尾,看看是否有"
。
通常情况下,RegEx会在它发现的第一件事后停止。最后的g
意味着继续在你给它的字符串中找到的每一个匹配。
我不会把它放在原来的RegEx中,因为玩可选引号可能很难看
如果他们一直保证,总是在那里,那就太好了,但是如果你认为他们是,并且你击中一个没有它们,那么你将获得null
匹配。 / p>