3文字の略語を数値表現に変換するのは簡単な作業だと思うでしょう。JavaScriptは「NOPE!」と言っています。
$(selector).each(function() {
// convert month abbreviation to numerical representation
var monthStr = $(this).text().match(/[^\/]*/)[0];
var months = {
JAN: 1,
FEB: 2,
MAR: 3,
APR: 4,
MAY: 5,
JUN: 6,
JUL: 7,
AUG: 8,
SEP: 9,
OCT: 10,
NOV: 11,
DEC: 12
};
var month = months[monthStr].toString();
var date = $(this).text().replace(monthStr, month);
$(this).text(date);
});
コードは有効で機能していますが、私のコンソールは次のエラーで混乱します。
Uncaught TypeError:未定義のメソッド'toString'を呼び出すことができません
セレクターのテキストが正しく置き換えられるため、これはまったく意味がありません(少なくとも目によると)。
'monthStr'変数を宣言すると、問題が発生するようです。例として静的な「MAR」に設定し、「month」変数定義から「.toString()」を削除すると、エラーは発生しなくなります。
さらに、コードを保存する唯一のものは、私の月変数のすでに述べた'.toString()'変換です。そこになかった場合、「未定義」の値になってしまいます。
その日のJavaScriptの愚かな経験を共有したかっただけで、コードが問題なく機能している場合でも、誰かがこのエラーがスローされる理由を詳しく説明してくれることを願っています。