2017-03-13 3 views
-1

:私は正規表現で()と一致することを期待していた私はクロームのデベロッパーコンソールで次のJavaScriptを試してみましたJavaScriptの正規表現驚き

["mysessionId=P", "P"] 

:結果によって

s = "mysessionId=PsGymRfxWIQG9gjNGgRlKw" 
s.match("mysessionId=([^\s\;]+)") 

少し驚い"PsGymRfxWIQG9gjNGgRlKw"全体ではなく、最初の文字 "P"にのみ一致しました。

私がregexpをperlで試したとき、それはsessionId全体と一致します。

理由は何ですか?

+1

問題は、エスケープするmysessionId =([^ \ s \;] +)=== "mysessionId =([^ s;] +)"です。したがって、次のように書く必要があります: 'new RegExp(" mysessionId =([^ \\ s \\;] +) ")' –

答えて

-1

""の代わりに//を使用してください。

s.match(/mysessionId=([^\s\;]+)/) 

私がそれを理解した瞬間を笑っていた。