惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Y
Y Combinator Blog
有赞技术团队
有赞技术团队
J
Java Code Geeks
H
Hackread – Cybersecurity News, Data Breaches, AI and More
美团技术团队
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Hugging Face - Blog
Hugging Face - Blog
人人都是产品经理
人人都是产品经理
酷 壳 – CoolShell
酷 壳 – CoolShell
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
C
Check Point Blog
博客园 - 【当耐特】
The GitHub Blog
The GitHub Blog
Recent Announcements
Recent Announcements
The Cloudflare Blog
Microsoft Azure Blog
Microsoft Azure Blog
腾讯CDC
Vercel News
Vercel News
IT之家
IT之家
MyScale Blog
MyScale Blog
博客园_首页
Martin Fowler
Martin Fowler
WordPress大学
WordPress大学
罗磊的独立博客

博客园 - 萍踪侠影

c#过滤HTML代码 - 萍踪侠影 - 博客园 也來開發一款日歷控件 制作activeX控件 在aspx頁中獲取DataGrid行序號 - 萍踪侠影 - 博客园 在MasterPage中檢驗User是否登入 - 萍踪侠影 - 博客园 [轉載]Run As Administrator 以編程方式為GridView添加欄位 - 萍踪侠影 - 博客园 Internet Explorer 7中的层叠样式表兼容性 Microsoft Office Web 组件 PivotTable 基础 ASP讀取excel文件 - 萍踪侠影 - 博客园 一個Ajax.NET的查詢實例 將字串轉換為日期型數據的例子 - 萍踪侠影 - 博客园 將datagrid控件內容輸出到excel文件 - 萍踪侠影 - 博客园 C#常用函数集 IPv6 简介 初探AJAX.NET Visual C# 3.0 新特性概览 遍历XML引擎版本以适应代码 微调您的 Web 站点以适应 Windows XP Service Pack 2
js校验的通用工具
萍踪侠影 · 2006-07-05 · via 博客园 - 萍踪侠影

页面写法和webwork差不多,ip的校验我只设了数字的校验,有更好的请大家告知谢谢!
1.validator.js:
var re_dt = /^(\d{1,2})\-(\d{1,2})\-(\d{4})$/,
re_tm = /^(\d{1,2})\:(\d{1,2})\:(\d{1,2})$/,
a_formats = {
<!-- 输入的字段须为数字 -->
'number' : function isNumber(s) {
var digits = "0123456789";
var i = 0;
var sLength = s.length;
while ((i < sLength)){
  var c = s.charAt(i);
if (digits.indexOf(c) == -1) return false;
                    i++;
                   }
                return true;
                },
<!-- Email字段必须符合一定的格式 -->
    'email' : /^[\w-\.]+\@[\w\.-]+\.[a-z]{2,4}$/,
<!-- 电话号码字段必须符合一定的格式 -->;
    'phone' : /^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}$/,
<!-- 手机字段必须符合一定的格式 -->
    'mobile' : /^((\(\d{3}\))|(\d{3}\-))?13\d{9}$/,
<!-- URL字段必须符合一定的格式 -->
'url'   :  /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\?+!]*([^<>\"\"])*$/,
    <!-- 身份证验证 -->
'idCardNo' : function isIDno(str){
 
aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",
31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",
43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",
61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"};
var aCity = "11,12,13,14,15,21,22,23,31,32,33,34,35,36,37,41,42,43,44,45,46,50,51,52,53,54,61,62,63,64,65,71,81,82,91"
var iSum = 0;
var idCardLength = str.length; 
if(!/^\d{17}(\d|x)$/i.test(str)&&!/^\d{15}$/i.test(str))
{
return false;
}
//在后面的运算中x相当于数字10,所以转换成a
str = str.replace(/x$/i,"a");
var curCity = str.substr(0,2); 
if(!(aCity.indexOf(curCity) > 0) )
{
return false;

if (idCardLength==18)
{
sBirthday=str.substr(6,4)+"-"+Number(str.substr(10,2))+"-"+Number(str.substr(12,2));
var d = new Date(sBirthday.replace(/-/g,"/"))
if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))
{
return false;
}
 
for(var i = 17;i>=0;i --)
iSum += (Math.pow(2,i) % 11) * parseInt(str.charAt(17 - i),11);
if(iSum%11!=1)
{
return false;
}
}
else if (idCardLength==15)
{
sBirthday = "19" + str.substr(6,2) + "-" + Number(str.substr(8,2)) + "-" +
Number(str.substr(10,2));
var d = new Date(sBirthday.replace(/-/g,"/"))
var dd = d.getFullYear().toString() + "-" + (d.getMonth()+1) + "-" + d.getDate();  
if(sBirthday != dd)
{  
 return false;
}
}
return true;
},
<!-- 货币字段必须符合一定的格式 -->
'currency' : /^\d+(\.\d+)?$/,
<!-- 邮编字段必须符合一定的格式 -->
'postCode' : /^[1-9]\d{5}$/,
<!-- 必须输入整型字段 -->
'int' : function isInteger(str){
if (/^\d+$/.test(str) == true) {
return true;
}
return false;   
},
<!-- 必须输入双精度型字段 -->
'double' : /^[-\+]?\d+(\.\d+)?$/,
<!-- 输入的字段须为字母 -->
'abcletter' : /^[A-Za-z]+$/,
<!-- 输入的字段须为中文 -->
'chinese' : /^[\u0391-\uFFE5]+$/,
<!-- 必须输入日期型字段yyyy-MM-dd格式 -->
'date'    : function isdate(strDate){
var strSeparator = "-"; //日期分隔符
var strDateArray;
var intYear;
var intMonth;
var intDay;
var boolLeapYear;

strDateArray = strDate.split(strSeparator);

if(strDateArray.length!=3) return false;

intYear = parseInt(strDateArray[0],10);
intMonth = parseInt(strDateArray[1],10);
intDay = parseInt(strDateArray[2],10);

if(isNaN(intYear)||isNaN(intMonth)||isNaN(intDay)) return false;

if(intMonth>12||intMonth<1) return false;

if((intMonth==1||intMonth==3||intMonth==5||intMonth==7||intMonth==8||intMonth==10||intMonth==12)&&(intDay>31||intDay<1)) return false;

if((intMonth==4||intMonth==6||intMonth==9||intMonth==11)&&(intDay>30||intDay<1)) return false;

    if(intMonth==2){
   if(intDay<1) return false;

   boolLeapYear = false;
   if((intYear%100)==0){
  if((intYear%400)==0) boolLeapYear = true;
   }
   else{
  if((intYear%4)==0) boolLeapYear = true;
   }

   if(boolLeapYear){
  if(intDay>29) return false;
   }
   else{
  if(intDay>28) return false;
   }
   }

               return true;
               },
<!-- 必须输入日期型字段hh:mm:ss格式 -->
'time'    : function (s_time) {
// check format
if (!re_tm.test(s_time))
return false;
// check allowed ranges
if (RegExp.$1 > 23 || RegExp.$2 > 59 || RegExp.$3 > 59)
return false;
return true;
},
<!-- IP地址字段必须符合一定的格式 -->
'ipAddress'    :  /(\d+)\.(\d+)\.(\d+)\.(\d+)/,
<!-- 输入的字段须为基本字符如a-z,0-9,_等 -->
'baseword'    :  /^\\w*$/
},
a_messages = [
'表单名不存在',
'表单"%form%"无需要校验数据',
'表单"%form%"不存在',
'表单中"%n%" 输入框定义属性不完全. 属性"l"不存在',
'在表单"%form%"中名为"%n%"的输入框不存在',
'id="%t%"标签不存在',
'校验匹配错误. 匹配项 "%m%"不存在',
'"%l%" 是必填项目!',
'"%l%" 必须大于等于 %min% 长度!',
'"%l%" 必须小于等于 %max% 长度!',
'"%l%"对于值"%v%"是非法格式!',
'"%l%" 必须匹配 "%ml%"'
]