『2016年2月6日』または『2016年02月06日』というフォーマットで入力される日付をそれぞれ
①「2016」、②「年」、③「2」、④「月」、⑤「6」、⑥「日」
の値として配列に格納して
もし③と⑤に入った値が1桁の数字だった場合はゼロパディングを行い配列ごと返す処理を作成していますが
③と⑤に入る値が1桁の数字かゼロパディング済の2桁の数字かは確定できないので
③ → "年"と"月"の間に入っている数字をマッチ
⑤ → "月"と"日"の間に入っている数字をマッチ
でそれぞれの正規表現をしたいのですが
var headerFormat = function(base){ //base += ""; base = "2016年2月6日"; var data = []; data[0] = base.match(/^\d{4}/); //2016 data[1] = base.match(/年/); //"年" data[2] = base.match(/\年.*\d.*\月/); //2または02 data[3] = base.match(/月/); //"月" data[4] = base.match(/\月.*\d.*\日/); //9または09 data[5] = base.match(/日/); //"日" //月・日が1桁ならばゼロパディング for (var i = 0; i < data.length; i++) { if(data[i] < 10) { data[i] = "0" + data[i]; } } return data; };
出力される値が『2016,年,年2月,月,月6日,日』で返ってしまいます
それぞれに隣接する文字は省いた数字のみの出力させる正規表現の表記のご教授お願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/02/06 10:53