如何用js判断text中输入的中文是否符合一定的规则?急!!! var strTime = "0000-00-00 上午00时00分00秒";alert(/\d{4}-\d{2}-\d{2} 上午\d{2}时\d{2}分\d{2}秒/.test(strTime)); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //函数名:CheckDateTime //功能介绍:检查是否为日期时间 function CheckDateTime(str){ var reg = /^(\d+)-(\d{1,2})-(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/; var r = str.match(reg); if(r==null)return false; r[2]=r[2]-1; var d= new Date(r[1], r[2],r[3], r[4],r[5], r[6]); if(d.getFullYear()!=r[1])return false; if(d.getMonth()!=r[2])return false; if(d.getDate()!=r[3])return false; if(d.getHours()!=r[4])return false; if(d.getMinutes()!=r[5])return false; if(d.getSeconds()!=r[6])return false; return true;} 嘿,看来我又太多自编函数供大家参考了。检验函数一般用在form提交时的onsubmit函数校验,即if(不符合规定) { alert(提示信息); xxx.focus(); return false;}下面是三个进行时间校验的函数:function dNotTime(value)// check if the value is NOT a time string// @param :value, value being checked// @return :if NOT time string return true, else return false{ var value; var rexp = /[^\d]+/; // detect delimiter string if(!value) return true; var delimiter = value.match(rexp); if(delimiter) { delimiter = delimiter.toString(); var dlen = delimiter.length; if(value.indexOf(delimiter) != 2) return true; value = value.substr(0,2) + value.substr(2 +dlen, 2) + value.substr(4 +2*dlen, 2); } var tarr = []; for(var k=0; k<3; k++) { tarr[k] = value.substr(2*k, 2); if(isNaN(tarr[k])) return true; tarr[k] = parseInt(tarr[k]); } if(tarr[0] < 0 || tarr[0] >= 24 || tarr[1] < 0 || tarr[1] >= 60 || tarr[2] < 0 || tarr[2] >= 60) { return true; } return false;}function dNotDate(value, y2d)// check if the value is NOT a date string// @param :value, value being checked// @param :y2d, two digital year flag// @return :if NOT date string return true, else return false{ var value, y2d; var rexp = /[^\d]+/; // detect delimiter string if(!value) return true; var delimiter = value.match(rexp); var YRW = 4; if(y2d) YRW = 2; if(delimiter) { delimiter = delimiter.toString(); var dlen = delimiter.length; if(value.indexOf(delimiter) != YRW) return true; value = value.substr(0,YRW) + value.substr(YRW +dlen, 2) + value.substr(YRW +2 +2*dlen, 2); } var tarr = []; for(var k=0; k<3; k++) { tarr[k] = value.substr((k==0?0:(YRW +2*(k-1))), (k==0?YRW:2)); if(isNaN(tarr[k])) return true; tarr[k] = parseInt(tarr[k]); if(y2d && k==0) tarr[k] = 1900 +tarr[k]; //year 2 digital process } var febdays = ((tarr[0]%4 == 0) && (tarr[0]%100 != 0) || (tarr[0]%400 == 0))?29:28; var mdarr = new Array(31,febdays,31,30,31,30,31,31,30,31,30,31); if(tarr[0] < 0 || tarr[1] < 1 || tarr[1] > 12 || tarr[2] < 1 || tarr[2] > mdarr[tarr[1] -1]) { return true; } return false;}function dNotDateTime(value, delimiter, y2d)// check if the value is NOT a datetime string// @param :value, value being checked// @param :delimiter, delimiter between date string and time string// @param :y2d, two digital year flag// @return :if NOT datetime string return true, else return false{ var value, delimiter, y2d; if(!value) return true; if(!delimiter) delimiter = ""; var datestr, timestr; var DTW = 8; if(y2d) DTW = 6; if(!delimiter) { datestr = value.substr(0, DTW); timestr = value.substr(DTW, 6); } else { var dpos = value.indexOf(delimiter); datestr = value.substring(0, dpos); timestr = value.substring(dpos +delimiter.lenght, value.length); } return (dNotDate(datestr, y2d) || dNotTime(timestr));} wsj(骆驼) 你好,用你的方法在strTime = "0000-00-00 上午00时00分00秒";时好用,但是如果strTime取页面中控件的值即:strTime=Editname.value.toString();就不成了:-(fason(阿信)的方法,我把:换成中文的时分秒后也不好用了,好像在窗口中输入的中文和在代码中直接写的中文有什么不同似的,为什么? 【分享】Js俄罗斯方块 跪求公历农历日期联动代码 innerHTML中的控件不能附值 求例如CSDN首页中一帧一帧变化的那个制作的方法! 紧急求助:用vbscript写的ajax在载入数据时会卡住? 怎样用代码实现将某个文本框中的内容选中 javascript求助 谁知道这个问题是怎么回事,帮忙解决一下。。。。。 SyGate 的配置问题 怎样在主页里配置音乐 一定要裝outlook 才能用嗎﹐只裝outlook Express 不能用嗎 请教cloneNode()的用法
//功能介绍:检查是否为日期时间
function CheckDateTime(str){
var reg = /^(\d+)-(\d{1,2})-(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;
var r = str.match(reg);
if(r==null)return false;
r[2]=r[2]-1;
var d= new Date(r[1], r[2],r[3], r[4],r[5], r[6]);
if(d.getFullYear()!=r[1])return false;
if(d.getMonth()!=r[2])return false;
if(d.getDate()!=r[3])return false;
if(d.getHours()!=r[4])return false;
if(d.getMinutes()!=r[5])return false;
if(d.getSeconds()!=r[6])return false;
return true;
}
检验函数一般用在form提交时的onsubmit函数校验,即
if(不符合规定) {
alert(提示信息);
xxx.focus();
return false;
}
下面是三个进行时间校验的函数:function dNotTime(value)
// check if the value is NOT a time string
// @param :value, value being checked
// @return :if NOT time string return true, else return false
{
var value;
var rexp = /[^\d]+/; // detect delimiter string
if(!value) return true;
var delimiter = value.match(rexp);
if(delimiter) {
delimiter = delimiter.toString();
var dlen = delimiter.length;
if(value.indexOf(delimiter) != 2) return true;
value = value.substr(0,2) + value.substr(2 +dlen, 2) + value.substr(4 +2*dlen, 2);
}
var tarr = [];
for(var k=0; k<3; k++) {
tarr[k] = value.substr(2*k, 2);
if(isNaN(tarr[k])) return true;
tarr[k] = parseInt(tarr[k]);
}
if(tarr[0] < 0 || tarr[0] >= 24
|| tarr[1] < 0 || tarr[1] >= 60
|| tarr[2] < 0 || tarr[2] >= 60) {
return true;
}
return false;
}function dNotDate(value, y2d)
// check if the value is NOT a date string
// @param :value, value being checked
// @param :y2d, two digital year flag
// @return :if NOT date string return true, else return false
{
var value, y2d;
var rexp = /[^\d]+/; // detect delimiter string
if(!value) return true;
var delimiter = value.match(rexp);
var YRW = 4;
if(y2d) YRW = 2;
if(delimiter) {
delimiter = delimiter.toString();
var dlen = delimiter.length;
if(value.indexOf(delimiter) != YRW) return true;
value = value.substr(0,YRW) + value.substr(YRW +dlen, 2) + value.substr(YRW +2 +2*dlen, 2);
}
var tarr = [];
for(var k=0; k<3; k++) {
tarr[k] = value.substr((k==0?0:(YRW +2*(k-1))), (k==0?YRW:2));
if(isNaN(tarr[k])) return true;
tarr[k] = parseInt(tarr[k]);
if(y2d && k==0) tarr[k] = 1900 +tarr[k]; //year 2 digital process
}
var febdays = ((tarr[0]%4 == 0) && (tarr[0]%100 != 0) || (tarr[0]%400 == 0))?29:28;
var mdarr = new Array(31,febdays,31,30,31,30,31,31,30,31,30,31);
if(tarr[0] < 0
|| tarr[1] < 1 || tarr[1] > 12
|| tarr[2] < 1 || tarr[2] > mdarr[tarr[1] -1]) {
return true;
}
return false;
}function dNotDateTime(value, delimiter, y2d)
// check if the value is NOT a datetime string
// @param :value, value being checked
// @param :delimiter, delimiter between date string and time string
// @param :y2d, two digital year flag
// @return :if NOT datetime string return true, else return false
{
var value, delimiter, y2d;
if(!value) return true;
if(!delimiter) delimiter = "";
var datestr, timestr;
var DTW = 8;
if(y2d) DTW = 6;
if(!delimiter) {
datestr = value.substr(0, DTW);
timestr = value.substr(DTW, 6);
} else {
var dpos = value.indexOf(delimiter);
datestr = value.substring(0, dpos);
timestr = value.substring(dpos +delimiter.lenght, value.length);
}
return (dNotDate(datestr, y2d) || dNotTime(timestr));
}
fason(阿信)的方法,我把:换成中文的时分秒后也不好用了,好像在窗口中输入的中文和在代码中直接写的中文有什么不同似的,为什么?