拙著「上手に稼ぐカラ売りテクニック」が発売されました。
株価が下がる局面で利益を得ることができる「空売り」について、詳しく解説した本です。
自由国民社刊で、定価1,512円(税込)です。
IE10のRegExpの不具合
Internet Explorer 10のJavaScriptで、正規表現(RegExp)の不具合を見つけましたので、紹介します。
RegExpオブジェクトには「rightContext」というプロパティがあります。
このプロパティは、マッチした部分より後の文字列を表すプロパティです。
例えば、以下のようにmatchメソッドを実行して、文字列「abc」の中から「aが1文字以上連続する部分」を探すとします。
この場合、「abc」の先頭の「a」がマッチしますので、RegExp.rightContextの値は「bc」になります。
'abc'.match(/a+/)
ここで、以下の正規表現を考えてみます。
これは、「a以外の文字が0文字以上連続する部分」にマッチさせる処理です。
'abc'.match(/[^a]*/)
「a以外の0文字以上の連続」には、空文字も含みます。
「a」の前にも空文字があると考えられますので、上記の正規表現は空文字にマッチします。
そして、RegExp.rightContextの値は「abc」になるはずです。
実際、Google Chrome/Firefox/Operaではその通りの結果が得られました。
ところが、Internet Explorer 10で上記の処理を行うと、「空文字にマッチする」という点は正しく動作したものの、RegExp.rightContextの値も空文字になってしまいました。
とりあえず、マイクロソフトの「Contact Us」のページでこの不具合を報告してみました。
不具合が修正されることを望みます。