哈哈,没写的了,刚翻了半天箱子,忽发现原先给人答帖子的时候有人问过这样一个问题。。。
<script type="text/javascript">
var dateObject = {
//不考虑IE5.5以下版本浏览器的话可以写简单一些(目前就是,主要是replace里放函数需要5.5+)
strDate : {
//关键字
"一" : 1, "二" : 2, "三" : 3, "四" : 4, "五" : 5, "六" : 6, "七" : 7, "八" : 8, "九" : 9, "零" : 0, "十" : "十", "○" : 0
},
replaceDate : function (date) {
//替换字符时间
var ndate = date.replace(/./g, function (a) {
return dateObject.strDate[a];
}), number = ndate.split("十");
return (number.length == 2 ? (number[0] || "1") + (number[1] || "0") : ndate);
},
isDate : function (y, m, d) {
//判断日期是否为有效
var date, y, m, d;
date = new Date(y, m - 1, d);
return (y == date.getFullYear() && m == date.getMonth() + 1 && d == date.getDate());
},
formatDateTime : function (time, nbsp) {
//修改日期格式
var y, m, d;
var numDatePattern = /^(/d{4})[///.年/- ](/d{1,2})[///.月/- ](/d{1,2})日?$/;
var strDatePattern = /^([零○一二三四五六七八九十]{4})年([零一二三四五六七八九十]{1,2})月([零一二三四五六七八九十]{1,3})日$/;
if (!nbsp) nbsp = "-";
if (numDatePattern.test(time) || strDatePattern.test(time)) {
y = RegExp.$1, m = RegExp.$2, d = RegExp.$3;
if (!parseInt(y)) {
y = dateObject.replaceDate(y);
m = dateObject.replaceDate(m);
d = dateObject.replaceDate(d);
}
} else return null;
return (dateObject.isDate(y, m, d) ? y + nbsp + (m.length == 2 ? m : "0" + m) + nbsp + (d.length == 2 ? d : "0" + d) : null);
}
};
function show(date_value) {
//显示结果
document.write(date_value + "<br //>修改为:" + dateObject.formatDateTime(date_value) + "<hr //>");
}
show("二零零零年十月三十一日");
show("二零零零年十一月三十日");
show("2000/11/12");
show("2000年11月12日");
show("2000.11.12");
show("二零零零年十一月十二日");
show("二零零零年十月十二日");
show("二零零零年一月十二日");
show("二○○一年一月十二日");
show("2000-1-12");
window.onload = function () {
document.getElementById("wc").onfocus = new Function("this.value = dateObject.formatDateTime(this.value);");
};
</script>
<input id="wc" />