免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1708 | 回复: 2
打印 上一主题 下一主题

JS来实现校验函数 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-25 22:42 |只看该作者 |倒序浏览
以下是引用片段:
//校验是否全由数字组成  
function isDigit(s)  
{  
var patrn=/^[0-9]{1,20}$/;  
if (!patrn.exec(s)) return false  
return true  
}  
//校验登录名:只能输入5-20个以字母开头、可带数字、“_”、“.”的字串  
function isRegisterUserName(s)  
{  
var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/;  
if (!patrn.exec(s)) return false  
return true  
}  
//校验用户姓名:只能输入1-30个以字母开头的字串  
function isTrueName(s)  
{  
var patrn=/^[a-zA-Z]{1,30}$/;  
if (!patrn.exec(s)) return false  
return true  
}  
//校验密码:只能输入6-20个字母、数字、下划线  
function isPasswd(s)  
{  
var patrn=/^(\w){6,20}$/;  
if (!patrn.exec(s)) return false  
return true  
}  
//校验普通电话、传真号码:可以“+”开头,除数字外,可含有“-”  
function isTel(s)  
{  
//var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?(\d){1,12})+$/;  
var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;  
if (!patrn.exec(s)) return false  
return true  
}  
//校验手机号码:必须以数字开头,除数字外,可含有“-”  
function isMobil(s)  
{  
var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;  
if (!patrn.exec(s)) return false  
return true  
}  
//校验邮政编码  
function isPostalCode(s)  
{  
//var patrn=/^[a-zA-Z0-9]{3,12}$/;  
var patrn=/^[a-zA-Z0-9 ]{3,12}$/;  
if (!patrn.exec(s)) return false  
return true  
}  
//校验搜索关键字  
function isSearch(s)  
{  
var patrn=/^[^`~!@#$%^&*()+=|\\\][\]\{\}:;\’\,.<>/?]{1}[^`~!@$%^&()+=|\\\][\]\{\}:;\’\,.<>?]{0,19}$/;  
if (!patrn.exec(s)) return false  
return true  
}  
function isIP(s) //by zergling  
{  
var patrn=/^[0-9.]{1,20}$/;  
if (!patrn.exec(s)) return false  
return true  
}  
   
   
/*********************************************************************************  
* FUNCTION: isBetween  
* PARAMETERS: val AS any value  
* lo AS Lower limit to check  
* hi AS Higher limit to check  
* CALLS: NOTHING  
* RETURNS: TRUE if val is between lo and hi both inclusive, otherwise false.  
***************
******************************************************************/  
function isBetween (val, lo, hi) {  
if ((val < lo) || (val > hi)) { return(false); }  
else { return(true); }  
}  
/*********************************************************************************  
* FUNCTION: isDate checks a valid date  
* PARAMETERS: theStr AS String  
* CALLS: isBetween, isInt  
* RETURNS: TRUE if theStr is a valid date otherwise false.  
**********************************************************************************/  
function isDate (theStr) {  
var the1st = theStr.indexOf(’-’);  
var the2nd = theStr.lastIndexOf(’-’);  
if (the1st == the2nd) { return(false); }  
else {  
var y = theStr.substring(0,the1st);  
var m = theStr.substring(the1st+1,the2nd);  
var d = theStr.substring(the2nd+1,theStr.length);  
var maxDays = 31;  
if (isInt(m)==false || isInt(d)==false || isInt(y)==false) {  
return(false); }  
else if (y.length < 4) { return(false); }  
else if (!isBetween (m, 1, 12)) { return(false); }  
else if (m==4 || m==6 || m==9 || m==11) maxDays = 30;  
else if (m==2) {  
if (y % 4 > 0) maxDays = 28;  
else if (y % 100 == 0 && y % 400 > 0) maxDays = 28;  
else maxDays = 29;  
}  
if (isBetween(d, 1, maxDays) == false) { return(false); }  
else { return(true); }  
}  
}  
/*********************************************************************************  
* FUNCTION: isEuDate checks a valid date in British format  
* PARAMETERS: theStr AS String  
* CALLS: isBetween, isInt  
* RETURNS: TRUE if theStr is a valid date otherwise false.  
**********************************************************************************/  
function isEuDate (theStr) {  
if (isBetween(theStr.length, 8, 10) == false) { return(false); }  
else {  
var the1st = theStr.indexOf(’/’);  
var the2nd = theStr.lastIndexOf(’/’);  
if (the1st == the2nd) { return(false); }  
else {  
var m = theStr.substring(the1st+1,the2nd);  
var d = theStr.substring(0,the1st);  
var y = theStr.substring(the2nd+1,theStr.length);  
var maxDays = 31;  
if (isInt(m)==false || isInt(d)==false || isInt(y)==false) {  
return(false); }  
else if (y.length < 4) { return(false); }  
else if (isBetween (m, 1, 12) == false) { return(false); }  
else if (m==4 || m==6 || m==9 || m==11) maxDays = 30;  
else if (m==2) {  
if (y % 4 > 0) maxDays = 28;  
else if (y % 100 == 0 && y % 400 > 0) maxDays = 28;  
else maxDays = 29;  
}  
if (isBetween(d, 1, maxDays) == false) { return(false); }  
else { return(true); }  
}  
}  
}  
/********************************************************************************  
* FUNCTION: Compare Date! Which is the latest!  
* PARAMETERS: lessDate,moreDate AS String  
* CALLS: isDate,isBetween  
* RETURNS: TRUE if lessDate<moreDate  
*********************************************************************************/  
function isComdate (lessDate , moreDate)  
{  
if (!isDate(lessDate)) { return(false);}  
if (!isDate(moreDate)) { return(false);}  
var less1st = lessDate.indexOf(’-’);  
var less2nd = lessDate.lastIndexOf(’-’);  
var more1st = moreDate.indexOf(’-’);  
var more2nd = moreDate.lastIndexOf(’-’);  
var lessy = lessDate.substrin(0,less1st);  
var lessm = lessDate.substring(less1st+1,less2nd);  
var lessd = lessDate.substring(less2nd+1,lessDate.length);  
var morey = moreDate.substring(0,more1st);  
var morem = moreDate.substring(more1st+1,more2nd);  
var mored = moreDate.substring(more2nd+1,moreDate.length);  
var Date1 = new Date(lessy,lessm,lessd);   
var Date2 = new Date(morey,morem,mored);   
if (Date1>Date2) { return(false);}  
return(true);   
}  
/*********************************************************************************  
* FUNCTION isEmpty checks if the parameter is empty or null  
* PARAMETER str AS String  
**********************************************************************************/  
function isEmpty (str) {  
if ((str==null)||(str.length==0)) return true;  
else return(false);  
}  
/*********************************************************************************  
* FUNCTION: isInt  
* PARAMETER: theStr AS String   
* RETURNS: TRUE if the passed parameter is an integer, otherwise FALSE  
* CALLS: isDigit  
**********************************************************************************/  
function isInt (theStr) {  
var flag = true;  
if (isEmpty(theStr)) { flag=false; }  
else  
{ for (var i=0; i<theStr.length; i++) {  
if (isDigit(theStr.substring(i,i+1)) == false) {  
flag = false; break;  
}  
}  
}  
return(flag);  
}  
/*********************************************************************************  
* FUNCTION: isReal  
* PARAMETER: heStr AS String   
decLen AS Integer (how many digits after period)  
* RETURNS: TRUE if theStr is a float, otherwise FALSE  
* CALLS: isInt  
**********************************************************************************/  
function isReal (theStr, decLen) {  
var dot1st = theStr.indexOf(’.’);  
var dot2nd = theStr.lastIndexOf(’.’);  
var K = true;  
if (isEmpty(theStr)) return false;  
if (dot1st == -1) {  
if (!isInt(theStr)) return(false);  
else return(true);  就去干
}  
else if (dot1st != dot2nd) return (false);  
else if (dot1st==0) return (false);  
else {  
var intPart = theStr.substring(0, dot1st);  
var decPart = theStr.substring(dot2nd+1);  
if (decPart.length > decLen) return(false);  
else if (!isInt(intPart) || !isInt(decPart)) return (false);  
else if (isEmpty(decPart)) return (false);  
else return(true);  
}  
}  
/*********************************************************************************  
* FUNCTION: isEmail  
* PARAMETER: String (Email Address)  
* RETURNS: TRUE if the String is a valid Email address  
* FALSE if the passed string is not a valid Email Address  
* EMAIL FORMAT: [email=AnyName@EmailServer]AnyName@EmailServer[/email] e.g; webmaster@hotmail.com  
* @ sign can appear only once in the email address.  
*********************************************************************************/  
function isEmail (theStr) {  
var atIndex = theStr.indexOf([email=’@’]’@’[/email]);  
var dotIndex = theStr.indexOf(’.’, atIndex);  
var flag = true;  
theSub = theStr.substring(0, dotIndex+1)  
if ((atIndex < 1)||(atIndex != theStr.lastIndexOf([email=’@’))||(dotIndex]’@’))||(dotIndex[/email] < atIndex + 2)||(theStr.length <= theSub.length))   
{ return(false); }  
else { return(true); }  sexinsex
}  
/*********************************************************************************  
* FUNCTION: newWindow  
* PARAMETERS: doc -> Document to open in the new window  
hite -> Height of the new window  
wide -> Width of the new window  
bars -> 1-Scrll bars = YES 0-Scroll Bars = NO  
resize -> 1-Resizable = YES 0-Resizable = NO  
* CALLS: NONE  
* RETURNS: New window instance  
**********************************************************************************/  
function newWindow (doc, hite, wide, bars, resize) {  
var winNew="_blank";  
var pt="toolbar=0,location=0,directories=0,status=0,menubar=0,";  
opt+=("scrollbars="+bars+",");  
opt+=("resizable="+resize+",");  
opt+=("width="+wide+",");  
opt+=("height="+hite);  
winHandle=window.open(doc,winNew,opt);  
return;  
}  
/*********************************************************************************  
* FUNCTION: DecimalFormat  
* PARAMETERS: paramValue -> Field value  
* CALLS: NONE  
* RETURNS: Formated string  
**********************************************************************************/  
function DecimalFormat (paramValue) {  
var intPart = parseInt(paramValue);  
var decPart =parseFloat(paramValue) - intPart;  
str = "";  
if ((decPart == 0) || (decPart == null)) str += (intPart + ".00");  
else str += (intPart + decPart);  
return (str);  
}  

"^\\d+$"  //非负整数(正整数 + 0)   
"^[0-9]*[1-9][0-9]*$"  //正整数   
"^((-\\d+)|(0+))$"  //非正整数(负整数 + 0)   
"^-[0-9]*[1-9][0-9]*$"  //负整数   
"^-?\\d+$"    //整数   
"^\\d+(\\.\\d+)?$"  //非负浮点数(正浮点数 + 0)   
"^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$"  //正浮点数   
"^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$"  //非正浮点数(负浮点数 + 0)   
"^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"  //负浮点数   
"^(-?\\d+)(\\.\\d+)?$"  //浮点数   
"^[A-Za-z]+$"  //由26个英文字母组成的字符串   
"^[A-Z]+$"  //由26个英文字母的大写组成的字符串   
"^[a-z]+$"  //由26个英文字母的小写组成的字符串   
"^[A-Za-z0-9]+$"  //由数字和26个英文字母组成的字符串   
"^\\w+$"  //由数字、26个英文字母或者下划线组成的字符串   
"^[\\w-]+([url=file://\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$]\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$[/url]"    //email地址   
"^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$"  //url
此教程来源于97xxoo教程网(www.97xxoo.org)查看完整的教程请点:http://www.97xxoo.org/article/1/2008/20081124435.shtml

论坛徽章:
52
码神
日期:2017-03-28 10:27:10综合交流区版块每日发帖之星
日期:2015-10-11 06:20:00综合交流区版块每日发帖之星
日期:2015-09-28 06:20:00综合交流区版块每日发帖之星
日期:2015-09-22 06:20:00每日论坛发贴之星
日期:2015-09-12 06:20:00综合交流区版块每日发帖之星
日期:2015-09-12 06:20:00综合交流区版块每日发帖之星
日期:2015-09-08 06:20:00综合交流区版块每日发帖之星
日期:2015-09-05 06:20:00综合交流区版块每日发帖之星
日期:2015-09-04 06:20:002015亚冠之德黑兰石油
日期:2015-09-01 10:41:53每日论坛发贴之星
日期:2015-10-11 06:20:00综合交流区版块每日发帖之星
日期:2015-10-12 06:20:00
2 [报告]
发表于 2008-11-25 23:27 |只看该作者
感谢一下,收藏了。

论坛徽章:
0
3 [报告]
发表于 2008-11-26 15:40 |只看该作者
又看到了一些,帮顶一下了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP