"".split(/,/).length
が 0 になるのは知っていれば不思議ではない。でも、"".split(/,/,-1).length
が 0 になるのは説明できない。■割り切った単純さ(スコープとか数値とか連想配列とか)が好きな JavaScriptにも特別ルールが存在する。「脳log[20080221p01] JavaScriptの、空文字列にまつわる微妙な点 (String.split(), RegExp.lastIndex)」■正規表現に親しむと幅を持たないアンカーという概念を避けて通れないから、インデックスを文字の左右に置くようになる。1文字目がインデックス範囲(0-1)で、範囲(1-1)はその直後の文字間。空文字列もちゃんと存在して指し示すことができるから、無視するなんてアリエナイという考えになる。■あとは未定義と空文字列を混同しない程度にデータベースをかじって NULLに親しんでいて欲しい。「@2013-11-09 ECMAScript(3rd&5th ed.)の、Rubyとは異なる、残念正規表現仕様(20131101p01.12)」