0

誰かがこの正規表現が何をするのか説明できますか?

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

また、cookieInfo値に表示されている二重引用符を取り除くことができれば素晴らしいと思います。つまり、cookieInfo = "xyz+asd"の場合-上記の正規表現を使用して二重引用符を削除したいと思います。

4

3 に答える 3

2

基本的に、セミコロンではなく、文字列「cookieInfo =」の後に続く文字をできるだけ多く取得すると言っています

二重引用符を削除するには、これを試してください。

document.cookie.match(/cookieInfo="([^;]*)".*$/)[1]
于 2013-03-13T16:19:09.950 に答える
0

正規表現は、「cookieInfo=」で始まり、その後に 0 個以上のセミカラム以外の文字をキャプチャして、その後に 0 個以上の「anythings」が続く文字列と一致します。

二重引用符を取り除くには、正規表現 /"/ を使用して空の文字列に置き換えます。

于 2013-03-13T16:17:15.340 に答える
0

document.cookie 文字列で を検索しますcookieInfo=
次に、そうでないすべての文字を取得します;(最初のセミコロンに到達するまで)。
[...]内部に含まれるすべての文字のセット。
[^...]一致しないすべての文字のセット

次に、RegEx が他のすべての文字を検索できるようにします。
.*任意の文字、0 回以上。
$文字列の終わり (または、いくつかの特殊なケースでは、行の終わり)。

いくつかの異なる方法で置き換えることができますが"、正規表現に詰め込むのではなく、事後に置き換えることをお勧めします。

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

その 2 番目の正規表現は、「文字列の先頭を見て があるかどうかを確認する"か、文字列の末尾を見て があるかどうかを確認します"
通常、正規表現は最初に見つかった処理を実行した後に停止しますg。 end は、指定した文字列で見つかる可能性のあるすべての一致を続行することを意味します。

オプションの引用符をいじるのは醜い可能性があるため、元の正規表現には入れません。
それらが常にそこにあることが保証されている場合、それは素晴らしいことですが、そうであると仮定して、それらを持たないものをヒットすると、null一致することになります.

于 2013-03-13T16:28:18.683 に答える