簡體   English   中英

javascript中的正則表達式解釋

[英]regular expressions explanation in javascript

有人可以解釋這個正則表達式的作用嗎?

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

如果我能刪除我在cookieInfo值中看到的雙引號,那也很棒。 即當cookieInfo =“xyz + asd”時 - 我想使用上面的正則表達式去除雙引號。

它主要是說抓取盡可能多的不是分號的字符,然后在字符串'cookieInfo ='之后

試試這個以消除雙引號:

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

正則表達式匹配以'cookieInfo ='開頭的字符串,然后捕獲0個或更多非非半列字符,后跟0或更多'anythings'。

要刪除雙引號,可以使用正則表達式/“/並將其替換為空字符串。

它在document.cookie字符串中搜索cookieInfo=
接下來它抓住所有不是的字符; (直到它擊中第一個分號)。
[...]里面包含的所有字符的集合。
[^...]所有不匹配的字符集

然后它讓RegEx搜索所有其他字符。
.*任何字符,0次或更多次。
$ end of string(或在某些特殊情況下,行尾)。

您可以替換"兩種不同的方式,但不是將其填充到正則表達式中,我建議在事實之后對其進行替換:

var string = document.cookie.match(...)[1],
    cleaned_string = string.replace(/^"|"$/g, "");

第二個正則表達式是“查看字符串的開頭並查看是否有" ,或者查看字符串的結尾並查看是否存在"
通常情況下,RegEx會在它發現的第一件事后停止。 最后的g意味着繼續為你給它的字符串中可能找到的每個匹配。

我不會把它放在原來的RegEx中,因為玩可選引號可能很難看。
如果他們一直保證,總是在那里,那就太好了,但如果你認為他們是,並且你擊中一個沒有它們,那么你將得到一個null匹配。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM