あなたが探している情報は、この日記には記されていない可能性が高いです。(検索で来た人用)
にらどんは一杯500円。尚、出前は承っておりません。ご了承下さい。

javascript パターンマッチの怪

Dtable = txt11.value.match(/\d+/g);

この指定子によって、0-9で構成された文字群を、それ以外の文字で区切って配列に格納します。
とほほには">\d 任意の数値([0-9]と同じ)"とあります。
が、ここで配列の中にあるのは文字列を分割しただけの、"数値を表示する文字列"なので
数式に使うと、エラーで即落ちします。エラーを吐いているんだろうか、これ。tryしてないからわからん。
今見てみると、[0-9]と同じ、つまり文字列で返すとも読めるんですが。
alert()関数で値追いデバッグしていると、まず気づけないと思います。
というか僕が気づけなかった。すっかり数値が入っているつもりだった。
計算式のここで落ちているのはわかっても、入力周りのミスだとしか考えられなかった。

for(var i = 0; i < Dtable.length; i++)
 Dtable[i] = parseInt(Dtable[i], 10);

もしやと閃いてこの文を追加すると正常動作。


もう型のない言語を読み解くのは嫌だお・・・・
二度と変数型の無い言語は学ばないと決めた昨日でした。