空白でテキストを区切る場合
text.split(” “)で十分だけど
タブや改行でも区切りたかったので
text.split(/\s/g)にすると
ECMAScript 準拠なら、\s: 空白文字 ([ \t\f\r\n\v])だからいいかな?と思った。
同様に
text.match(/:[^\+…\’\s]+/g)で、SQLのパラメータっぽい事を処理しようと
「select * from table1 where aaa =’:コード[20]’」は予定通り「:コード[20]」が取れた。
「select * from table1 where aaa =’:コード{20}’」は予定通り「:コード{20}」が取れた。
しかし、
「select * from table1 where aaa =’:コード(20)’」は予定外の「:コード」が取れた。
これでは困るので\sのかわりに\u0020を使って
text.match(/:[^\+…\’\u0020]+/g)とすると
「select * from table1 where aaa =’:コード(20)’」は予定通り「:コード(20)」が取れた。
ところが、サンプルを作ってみると異常は起きない。
特定の環境か使い方でしか起きない様だ。
そうだったら恐ろしいけど、よくよく見ればコードミスかな?