0

私はいくつかのコードを調べていて、次の正規表現を見つけました:

var querystring = querystring.replace(/[^&]+=\.?(?:&|$)/g, '')

これはクエリ文字列を取得し、アンパサンドまたは疑問符で始まるすべての値をスペースに置き換えていますか? 私が見ていないことはここで起こっていますか?

論理的な説明は非常に高く評価されており、正規表現をもう少し理解するのに役立ちます。ありがとう!

4

2 に答える 2

3

値が次のクエリ文字列からこれらのパラメーターを削除するようです。

  1. 空の
  2. に等しい.

例えば:

"remove1=&remove2=.&keep1=..&keep2=a&keep3=b".replace(/[^&]+=\.?(?:&|$)/g, '')
// returns "keep1=..&keep2=a&keep3=b"
于 2012-04-27T11:06:20.073 に答える
2

[^&]+1 つ以上の「&」以外の文字

=リテラル「=」文字

\.?オプションの「.」

(?:&|$)「&」文字または文字列の末尾

たとえば一致しますか

Foobar=.&
A=

于 2012-04-27T11:04:29.677 に答える