0

URLクエリ文字列の疑問符に一致する式があり、読み取ろうとしているURLに疑問符%3dと同等のユニコードが含まれている場合に対応するために式を拡張する必要があります。

式は

var regexS = "[\\?&]" + name + "=([^&#]*)";

私がRegExについてほとんど知らないことから、これはうまくいくかもしれないと思いました

var regexS = "[\\?&]|[\\%3d&]" + name + "=([^&#]*)";

助けてくれてありがとう

4

1 に答える 1

1

文字列のエスケープを目的としたJavascriptを想定しています。

その"[\\?&]|[\\%3d&]" + name + "=([^&#]*)"ことに注意してください

  • 連結(abc)は交互(a|b|c)よりも優先され、
  • [\\%3d&]「パーセントまたは3またはdまたはアンパサンド」(文字クラス)を意味します。
  • のエスケープされた形式は?%3Dではなく%3Fです。%3Dはを意味し=ます。ウィキペディアを参照してください:パーセントエンコーディング
  • 最初の文字クラスのアンパサンドは、に一致&q2=するように存在しwww.example.com?q1=v1&q2=v2ます。おそらく、エスケープされたアンパサンドも許可したいでしょう。そのエスケープされた形式は%26です

あなたはおそらく"([\\?&]|\\%3f|\\%26)" + name + "=([^&#]*)"代わりに意味します。

また?、文字クラス内では特別な意味はなく、エスケープする必要がないことにも注意してください。"([?&]|%3f|%26)" + name + "=([^&#]*)"

于 2012-10-27T06:38:23.347 に答える