JavaScript格式日期从DDMMYYYY到DD/MM/YYYY
问题描述:
我有一个日期选择器,我想在用户输入为ddmmyyyy时将日期解析为dd/mm/yyyy。JavaScript格式日期从DDMMYYYY到DD/MM/YYYY
我有添加Javascript功能来输入文字,但我不知道如果我在正确的道路
<inputText id="input1" onchange="parseDate()"/>
<script type="text/javascript">
$(document).ready(function() {
$("#input1").datepicker()
};
function parseDate() {
???
}
<script>
感谢
答
如果这就是你要找的具体格式,那么你可以只是解析出来:
$('#input1').change(function() {
$(this).val($(this).val().replace(/^(\d{2})(\d{2})(\d{4})$/, '$1/$2/$3'));
});
这样的设计是这样的,当值正好是8位数字,然后它将格式化为XX/XX/XXXX。
您可能需要做的日期格式的有效性(虽然你不得不为MM/DD/YYYY输入做到这一点,以及反正)
答
当你要为一个简单的转换,考虑slice
你的字符串到你想要添加你的字符的点,例如
var strA = '13102015',
strB = strA.slice(0, 2) + '/' + strA.slice(2, 4) + '/' + strA.slice(4);
strB; // "13/10/2015"
如果稍后用户修改它,可能需要多次调用此选项,您也可能希望在开始时使用replace
(例如,
'13/102015'.replace(/[^\d]/g, ''); // "13102015"
// now continue to slice
在正则表达式,
-
[chars]
装置匹配这些字符(在这种情况下c
,h
,a
,r
,s
) -
[^chars]
是[chars]
倒数,即匹配除这些字符以外的任何字符 -
\d
是任何数字,即数字0
到9
- 的
g
标志意味着g
叶形,即赛后不停地寻找另一场比赛
答
试试这个额外的验证....
function convertDate(inputFormat) {function pad(s) { return (s < 10) ? '0' + s : s; } var d = new Date(inputFormat); return [pad(d.getDate()), pad(d.getMonth()+1), d.getFullYear()].join('/'); }