javascript中的正则表达式解释

时间:2013-03-13 16:10:45

标签: javascript regex

有人可以解释这个正则表达式的作用吗?

document.cookie.match(/cookieInfo=([^;]*).*$/)[1]

如果我能删除我在cookieInfo值中看到的双引号,那也很棒。即当cookieInfo =“xyz + asd”时 - 我想使用上面的正则表达式删除双引号。

3 个答案:

答案 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>