レス書き込み
スレへ戻る
写
レス栞
レス消
JavaScript 4©2ch.net
PC,スマホ,PHSは
ULA
べっかんこ
公式(スマホ)
公式(PC)
で書き込んでください。
名前
メール
引用切替:
レスアンカーのみ
>>340 > https://mevius.5ch.net/test/read.cgi/tech/1489511075/862 で質問した者なのだけど、 > String.matchとRegExp.execの挙動の細かい違いについて分かる人居る? > > 仕様書はMDNから飛べるけど一応以下。 > https://tc39.es/ecma262/#sec-string.prototype.match > https://tc39.es/ecma262/#sec-regexp.prototype.exec > 正直俺はよく分からない。 > > 問題になるのは質問した内容で、再掲すると、 > '@time;prop1:style1;prop2:style2'.match(/(^|[@;])[^@;]*/g); // 結果 ["", ";prop1:style1", ";prop2:style2"] 、俺の想定 ["", "@time",";prop1:style1", ";prop2:style2"] > '@time;prop1:style1;prop2:style2'.match(/(^.|[@;])[^@;]*/g); // 結果 ["@time", ";prop1:style1", ";prop2:style2"] 、これは納得 > の前者の挙動が謎だったのだが、 > > var re = /(^|[@;])[^@;]*/g; > var str = '@time;prop1:style1;prop2:style2'; > re.exec(str); // 結果 ["", ""] > console.log(re.lastIndex); > > でちまちま調べる限り、lastIndexは0のまま固定されており、俺の『正規表現の』理解は間違いではないことは分かった。 > 当然これだとMDNのexecにあるような while ((myArray = myRe.exec(str)) !== null) みたいなことをすると無限ループする。 > だから String.match はそうならないように何かしら対策がしてあって、結果、頭のマッチが取れないようだ。 > なのだが、仕様書を見ても違うのは分かるが何がどうなのかよく分からない。 > String.matchでは (^| の条件は駄目で、 (^.| のように、「文頭」ではなく「文頭の文字」に当たるようにしないといけない、ということなのか?
ローカルルール
SETTING.TXT
他の携帯ブラウザのレス書き込みフォームはこちら。
書き込み設定
で書き込みサイトの設定ができます。
・
ULA
・
べっかんこ(身代わりの術)
・
べっかんこ(通常)
・
公式(スマホ)
・
公式(PC)[PC,スマホ,PHS可]
書き込み設定(板別)
で板別の名前とメールを設定できます。
メモ帳
(0/65535文字)
上
下
板
覧
索
設
栞
歴
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.008s