私は次のようにフォーマットする日付の異なる種類があります。どのように日付の異なるフォーマットを扱いますか?
27 - 1945年8月8月28日663 CE
22を5月19日
1945年5月4日 - 1945年8月22日
5/4/1945
2-71232
1020年3月4日
1/3/1
(year 1)
09/08/0
(year 0)
注彼らはすべての異なるフォーマット、異なる順序、いくつかあります2ヶ月間、いくつか唯一の、私はmoment jsの結果を使用しようとしたが、私はまだdate jsを使用しようとしたが、幸運。
私はいくつかの分割を実行しようとしました:
dates.push({
Time : []
});
function doSelect(text) {
return $wikiDOM.find(".infobox th").filter(function() {
return $(this).text() === text;
});
}
dateText = doSelect("Date").siblings('td').text().split(/\s+/g);
for(var i = 0; i < dateText.length; i++) {
d += dateText[i] + ' ';
}
dates[0].Time.push(d);
しかし、結果は次のとおりです。
"Time": [
"27 - 28 August 663 CE ",
結局、私は自動生成するために必要なものです:
<ul class="Days">
<li>27</li>
<li>28</li>
</ul>
<ul class="Months">
<li>August</li>
</ul>
<ul class="Year">
<li>663</li>
</ul>
とも考えます処理する方法CE
またはAD
またはBC
私が使用したい理想的な方法は、多次元配列であることを達成するために:その後、max 2 numbers for days
をチェックJanuary, February, March..
のような文字列のリストに対して、数ヶ月をチェックし3 numbers to max 4 numbers
分年しおそらく
time.push({
Day : [],
Month : [],
Year : [],
Prefix : []
});
とprefix with some conditionals
を処理します。しかし、まだ、についてはyear 2 or 1
?または、日付が02/9/1975
の場合はどうですか?または、dash
を分離して、新しいフォーマットにします。私はロジックがあると思いますが、それらがすべて異なるフォーマットであるという事実を考慮して、これらの日付を上記のように多次元配列に分割する方法はありますか?
これは、日付のライブラリが勝ったことを文字列解析の問題です場合によっては最終的な文字列を検証することを除いて助けになる可能性があり、些細な問題ではない – charlietfl
@charlietflはい、実際には助けにはなりませんでした。私は文字列を分割し、最後にいくつかの追加の考えで更新された質問をチェックしたいと思います。 –
おそらくあなたのデータ(とそれぞれのパーサ)から掻き集めた既知のフォーマットの正規表現をたくさん作る必要があります。新しい正規表現を書くことができるように、新しい正規表現を見つけたらそれを保存します – charlietfl