以前写的两个函数:function getDateByMask(s,m){
if (s.length!=m.length){
return false;
}
try{
m=m.replace(/Y/g,"y").replace(/D/g,"d");
if (m.indexOf("yyyy")>-1)
return new Date(
s.substr(m.indexOf("yyyy"),4),
s.substr(m.indexOf("MM"),2)-1,
s.substr(m.indexOf("dd"),2)
)
else return new Date(
s.substr(m.indexOf("yy"),2),
s.substr(m.indexOf("MM"),2)-1,
s.substr(m.indexOf("dd"),2)
)
}
catch (e)
{
return null;
}
}
/*
test:
alert(getDateByMask("2002/02/01","yyyy/MM/dd"))
alert(getDateByMask("02/02/01","yy/MM/dd"))
*/function checkDateByMask(s,m){
if (s.length!=m.length){
return false;
}
try{
var d = getDateByMask(s,m)
m=m.replace(/Y/g,"y").replace(/D/g,"d");
if (m.indexOf("yyyy")>-1)
return (
d.getFullYear() == s.substr(m.indexOf("yyyy"),4)
&& d.getMonth() == s.substr(m.indexOf("MM"),2)-1
&& d.getDate() == s.substr(m.indexOf("dd"),2)
)
else return (
d.getYear() == s.substr(m.indexOf("yy"),2)
&& d.getMonth() == s.substr(m.indexOf("MM"),2)-1
&& d.getDate() == s.substr(m.indexOf("dd"),2)
)
}
catch (e)
{
return false;
}
}
/*
test:
alert(checkDateByMask("2002/02/01","yyyy/MM/dd"))
alert(checkDateByMask("02/02/01","yy/MM/dd"))
alert(checkDateByMask("2002/13/01","yyyy/MM/dd"))
alert(checkDateByMask("02/02/30","yy/MM/dd"))
*/
if (s.length!=m.length){
return false;
}
try{
m=m.replace(/Y/g,"y").replace(/D/g,"d");
if (m.indexOf("yyyy")>-1)
return new Date(
s.substr(m.indexOf("yyyy"),4),
s.substr(m.indexOf("MM"),2)-1,
s.substr(m.indexOf("dd"),2)
)
else return new Date(
s.substr(m.indexOf("yy"),2),
s.substr(m.indexOf("MM"),2)-1,
s.substr(m.indexOf("dd"),2)
)
}
catch (e)
{
return null;
}
}
/*
test:
alert(getDateByMask("2002/02/01","yyyy/MM/dd"))
alert(getDateByMask("02/02/01","yy/MM/dd"))
*/function checkDateByMask(s,m){
if (s.length!=m.length){
return false;
}
try{
var d = getDateByMask(s,m)
m=m.replace(/Y/g,"y").replace(/D/g,"d");
if (m.indexOf("yyyy")>-1)
return (
d.getFullYear() == s.substr(m.indexOf("yyyy"),4)
&& d.getMonth() == s.substr(m.indexOf("MM"),2)-1
&& d.getDate() == s.substr(m.indexOf("dd"),2)
)
else return (
d.getYear() == s.substr(m.indexOf("yy"),2)
&& d.getMonth() == s.substr(m.indexOf("MM"),2)-1
&& d.getDate() == s.substr(m.indexOf("dd"),2)
)
}
catch (e)
{
return false;
}
}
/*
test:
alert(checkDateByMask("2002/02/01","yyyy/MM/dd"))
alert(checkDateByMask("02/02/01","yy/MM/dd"))
alert(checkDateByMask("2002/13/01","yyyy/MM/dd"))
alert(checkDateByMask("02/02/30","yy/MM/dd"))
*/
解决方案 »
- 当input中属性name的定义和事件名相同时无法调用到事件
- 如何在固定的DIV中放大缩小图片(js实现)?
- 请教:为什么IE6下却提示:“document.body 空或不是对象”
- 如何正则过滤掉html代码中不想要的值?
- 求救!appendChild出错
- 问个 关联表单 的问题,达人们进来帮忙,小弟解决不了
- ////请教:关于下拉列表比较值的Javascript语句\\\\
- 请教高手们,一个在javascript中用alert显示提示框的问题
- 急!!!请问如何利用WEB的打印去掉页码,自动添加的连接地址那些东西
- 一个高难度问题,期待高手出现(100 point)!!!!!!!!!!!
- 100分请教!如何得到字符串数组的字串的最大个数!?
- 为什么我的css代码不能够使边框的某个方向的边消失?
function isDate(sDate)
{
var reDate=/^([0-9]{4})-([0-9]{2})-([0-9]{2})$/;
if(!reDate.test(sDate)) return false;
var y=parseInt(RegExp.$1), m=parseInt(RegExp.$2), d=parseInt(RegExp.$3);
if(m>12 || d>31) return false;
var sMonth="4|6||9|11";
if(sMonth.indexOf(String(m))!=-1 && d==31) return false;
if((y%4!=0 || (y%4==0 && y%400!=0)) && m==2 && d>28) return false;
return true;
}
alert(isDate("1983-02-29"));
alert(isDate("1982-09-22"));
</script>
function strDateTime(str)
{
var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/;
var r = str.match(reg);
if(r==null)return false;
var d= new Date(r[1], r[3]-1,r[4]);
var newStr=d.getFullYear()+r[2]+(d.getMonth()+1)+r[2]+d.getDate()
return newStr==str
}
alert(strDateTime("2002-1-31"))
alert(strDateTime("2002-1-41"))
</script>
String.prototype.isDate = function() {
var p;
var re1 = /(\d{4})[年./-](\d{1,2})[月./-](\d{1,2})[日]?$/;
var re2 = /(\d{1,2})[月./-](\d{1,2})[日./-](\d{2})[年]?$/;
var re3 = /(\d{1,2})[月./-](\d{1,2})[日./-](\d{4})[年]?$/;
if(re1.test(this)) {
p = re1.exec(this);
return new Date(p[1],p[2],p[3]);
}
if(re2.test(this)) {
p = re2.exec(this);
return new Date(p[3],p[1],p[2]);
}
if(re3.test(this)) {
p = re3.exec(this);
return new Date(p[3],p[1],p[2]);
}
return false;
}