分类: JavaScript
2013-07-19 11:11:54
(2)判断输入内容的长度是否在范围内
function IsTrLength(fieldid,mix,max)
{
var str =
document.getElementById(fieldid).val.trim();
if(str.length > max ||
str.length < mix)
{
alert("请输入min-max的长度");
return
false;
}
return tr;
}
(3)判断日期类型是否为YYYY-MM-DD格式的类型
function IsDate(fieldid)
{
var str =
document.getElementById(fieldid).val.trim();
if(str.length!=0)
{
var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/;
var r =
str.match(reg);
if(r==null)
alert('对不起,您输入的日期格式不正确!');
return false;
}
return tr;
}
(4)判断日期类型是否为YYYY-MM-DD hh:mm:ss格式的类型
function IsDateTime(fieldid)
{
var str =
document.getElementById(fieldid).val.trim();
if(str.length!=0)
{
var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})
(\d{1,2}):(\d{1,2}):(\d{1,2})$/;
var r = str.match(reg);
if(r==null)
alert('对不起,您输入的日期格式不正确!');
return
false;
}
return tr;
}
(5)判断日期类型是否为hh:mm:ss格式的类型
function IsTime(fieldid)
{
var str =
document.getElementById(fieldid).val.trim();
if(str.length!=0)
{
reg=/^((20|21|22|23|[0-1]\d)\:[0-5][0-9])(\:[0-5][0-9])?$/
if(!reg.test(str))
{
alert("对不起,您输入的日期格式不正确!");
return
false;
}
}
return tr;
}
(6)判断输入的字符是否为英文字母
function
IsLetter(fieldid)
{
var str =
document.getElementById(fieldid).val.trim();
if(str.length!=0)
{
reg=/^[a-zA-Z]+$/;
if(!reg.test(str))
{
alert("对不起,您输入的英文字母类型格式不正确!");
return
false;
}
}
return tr;
}
(7)判断输入的字符是否为整数
function
IsInteger(fieldid)
{
var str =
document.getElementById(fieldid).val.trim();
if(str.length!=0)
{
reg=/^[-+]?\d*$/;
if(!reg.test(str))
{
alert("对不起,您输入的整数类型格式不正确!");
return
false;
}
}
return tr;
}
(8)判断输入的字符是否为双精度
function IsDo
le(fieldid)
{
var str =
document.getElementById(fieldid).val.trim();
if(str.length!=0)
{
reg=/^[-\+]?\d+(\.\d+)?$/;
if(!reg.test(str))
{
alert("对不起,您输入的双精度类型格式不正确!");
return
false;
}
}
return
tr;
}
(9)判断输入的字符是否为:a-z,A-Z,0-9
function
IsString(fieldid)
{
var str =
document.getElementById(fieldid).val.trim();
if(str.length!=0)
{
reg=/^[a-zA-Z0-9_]+$/;
if(!reg.test(str))
{
alert("对不起,您输入的字符串类型格式不正确!");
return
false;
}
}
return tr;
}
(10)判断输入的字符是否为中文
function
IsChinese(fieldid)
{
var str =
document.getElementById(fieldid).val.trim();
if(str.length!=0)
{
reg=/^[\Α-\¥]+$/;
if(!reg.test(str))
{
alert("对不起,您输入的字符串类型格式不正确!");
return false;
}
}
return tr;
}
(11)判断输入的EMAIL格式是否正确
function IsEmail(fieldid)
{
var str =
document.getElementById(fieldid).val.trim();
if(str.length!=0)
{
reg=/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
if(!reg.test(str))
{
alert("对不起,您输入的字符串类型格式不正确!");
return false;
}
}
return
tr;
}
(12)判断输入的邮编(只能为六位)是否正确
function IsZIP(fieldid)
{
var str
= document.getElementById(fieldid).val.trim();
if(str.length!=0)
{
reg=/^\d{6}$/;
if(!reg.test(str))
{
alert("对不起,您输入的字符串类型格式不正确!");
return
false;
}
}
return tr;
}
(13)判断输入的数字不大于某个特定的数字
function
MaxVal(fieldid)
{
var val =
document.getElementById(fieldid).val.trim();
if(str.length!=0)
{
reg=/^[-+]?\d*$/;
if(!reg.test(str))
{//判断是否为数字类型
if(valparseInt('123'))
//“123”为自己设定的最大值
{
alert('对不起,您输入的数字超出范围');
return false;
}
}
}
return;
}
(14)判断输入的是否是电话号码
function
IsPhone(fieldid)
{
var str =
document.getElementById(fieldid).val.trim();
if(str.length!=0)
{
reg=/^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/;
if(!reg.test(str))
{//判断是否为数字类型
return false;
}
}
return tr;
}
(15)判断输入的是否是手机号码
function
IsMobile(fieldid)
{
var str =
document.getElementById(fieldid).val.trim();
if(str.length!=0)
{
reg=/^((\(\d{2,3}\))|(\d{3}\-))?13|15\d{9}$/;
if(!reg.test(str))
{
return
false;
}
}
return tr;
}
(16)判断输入的是否为url
function
IsUrl(fieldid)
{
var str =
document.getElementById(fieldid).val.trim();
if(str.length!=0)
{
reg=/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^\"\"])*$/;
if(!reg.test(str))
{
return
false;
}
}
return tr;
}
(17)判断输入的是否为idCard
function
IsIdCard(fieldid)
{
var str =
document.getElementById(fieldid).val.trim();
if(str.length!=0)
{
reg=/^\d{15}(\d{2}[A-Za-z0-9])?$/;
if(!reg.test(str))
{
return
false;
}
}
return tr;
}
(18)判断输入的是否为QQ
function
IsQQ(fieldid)
{
var str =
document.getElementById(fieldid).val.trim();
if(str.length!=0)
{
reg=/^[1-9]\d{4,10}$/;
if(!reg.test(str))
{
return
false;
}
}
return tr;
}
//为上面提供各个JS验证方法提供.trim()属性
String.prototype.trim=function()
{
return
this.replace(/(^\s*)|(\s*$)/g, "");
}
test.htmlscript
type="text/javascript"
src="scripts/valid.js"
charset="UTF-8"/scriptscript
type="text/javascript"
!--function
cClick()
{
if
(!IsTrLength("phone",7,20))
{
alert("电话号不对,请输入");
document.getElementById("phone").focus();
return
false;
}
}//--input type="s mit" onclick="return check()"
在b/s程序设计中,经常需要向一个输入框输入日期或时间,并验证输入是否有效。
通常的验证方法是在提交的时候进行字符串验证,如果是合法的日期时间则正常提交,否则取消提交并给出错误信息。或者,将日期时间的输入变成几个下拉列表框,由用户选择年月日时分秒。
这里给出一个用javascript编写的日期时间输入验证脚本。
这个脚本可以使一个普通的输入框变成日期时间输入框。
你只能在这个输入框里输入日期时间格式的字符串,而不允许你输入任何其他的字符。
当你输入非法字符时,它并不是不负责任地弹出错误对话框,而是完全过滤掉你的输入以保证你输入框的内容绝对是合法的日期时间格式。
事实上,你可以向这个脚本中添加其他验证函数,让这个脚本可以控制其它类型格式的输入,例如:数字、电子邮件、用户ID等等。
代码如下:
scriptfunction
isTime(str)
{
var a = str.match(/^(\d{0,2}):(\d{0,2}):(\d{0,2})$/);
if
(a == null)
return false;
if (a[1]=24 || a[2]=60 || a[3]=60)
return
false;
return tr;}
function isDateTime(str)
{var a =
str.match(/^(\d{0,4})-(\d{0,2})-(\d{0,2})
(\d{0,2}):(\d{0,2}):(\d{0,2})$/);
if (a == null) return false;if ( a[2]=13 ||
a[3]=32 || a[4]=24 || a[5]=60 || a[6]=60)
return false;
return
tr;
}
function isDate(str)
{
var a =
str.match(/^(\d{0,4})-(\d{0,2})-(\d{0,2})$/);
if (a == null)
return
false;
if ( a[2]=13 || a[3]=32 || a[4]=24)
return false;
return
tr;
}
function validate(obj,type)
{
var
range=obj.createTextRange();
var text = range.text;
var selrange =
document.selection.createRange();
var seltext = selrange.text;
var
startpos = 0,endpos =
0;while(selrange.compareEndPoints("StartToStart",range)0)
{
selrange.moveStart("character",-1);
startpos
++;
}
while(selrange.compareEndPoints("EndToStart",range)0) {
selrange.moveEnd("character",-1);
endpos
++;
}
if(event.keyCode=48)
{
var keytext =
String.fromCharCode(event.keyCode);
text = text.s string(0,startpos) +
keytext + text.s string(endpos,text.length);
}
else if(event.keyCode ==
46)
{
//delete
if(startpos == endpos)
text = text.s
string(0,startpos) + text.s string(startpos+1,text.length);
else text =
text.s string(0,startpos) + text.s string(endpos,text.length);
}
else
if(event.keyCode == 8)
{
if(startpos == endpos)
text = text.s
string(0,startpos-1) + text.s string(startpos,text.length);
else text =
text.s string(0,startpos) + text.s
string(endpos,text.length);
}
if(event.keyCode ==
45)
{
event.returnVal = false;
return;
}
var
valid;switch(type)
{
case 1:valid = isDate(text);break;
case
2:valid = isTime(text);break;
case 3:valid =
isDateTime(text);break;
default:valid =
false;
}
if(!valid)
{
event.returnVal =
false;
}
}/script把上面这段代码放在web页面的任何位置即可。
使用方法:
日期验证框:input
onkeyDown="validate(this,1)" val="0000-00-00"
时间验证框:input
onkeyDown="validate(this,2)" val="00:00:00"
日期时间验证框:input
onkeyDown="validate(this,3)" val="0000-00-00
00:00:00"
我们可以测试一下。在页面上加入以下内容:input id="date" onkeyDown="validate(this,3)"
val="0000-00-00
(19)时间验证//00:00:00
function isTime(str)
{
var a =
str.match(/^(\d{0,2}):(\d{0,2}):(\d{0,2})$/);
if (a == null) return false;
if (a[1]>=24 || a[2]>=60 || a[3]>=60) return false;
return
tr;
}
(20)日期时间验证//0000-00-00 00:00:00
function isDateTime(str)
{
var a = str.match(/^(\d{0,4})-(\d{0,2})-(\d{0,2})
(\d{0,2}):(\d{0,2}):(\d{0,2})$/);
if (a == null)
return false;
if ( a[2]>=13 || a[3]>=32 || a[4]>=24 || a[5]>=60 ||
a[6]>=60)
return false;
return tr;
}
(21)日期验证//0000-00-00
function isDate(str)
{
var a =
str.match(/^(\d{0,4})-(\d{0,2})-(\d{0,2})$/);
if (a == null)
return
false;
if ( a[2]>=13 || a[3]>=32 || a[4]>=24)
return false;
return tr;
}