zoukankan
html css js c++ java
js验证常用正则表达式集锦
Code
js验证常用正则表达式集锦
<
script
>
/**/
/*
************************************************
************************************************
*/
Validator
=
{
Require :
/
.+
/
,
Email :
/
^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
/
,
Phone :
/
^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$
/
,
Mobile :
/
^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$
/
,
Url :
/
^http:\
/
\
/
[A-Za-z0-9]+\.[A-Za-z0-9]+[\
/
=
\
?%
\
-&
_
~
`@[\]\
'
:+!]*([^<>\"\"])*$/,
IdCard : /^\d{15}(\d{2}[A-Za-z0-9])?$/,
Currency : /^\d+(\.\d+)?$/,
Number : /^\d+$/,
Zip : /^[1-9]\d{5}$/,
QQ : /^[1-9]\d{4,8}$/,
Integer : /^[-\+]?\d+$/,
Double : /^[-\+]?\d+(\.\d+)?$/,
English : /^[A-Za-z]+$/,
Chinese : /^[\u0391-\uFFE5]+$/,
Username : /^[a-z]\w{3,}$/i,
UnSafe : /^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\
'
\
"
]*)|.{0,5})$|\s/,
IsSafe : function(str){return !this.UnSafe.test(str);},
SafeString :
"
this
.IsSafe(value)
"
,
Filter :
"
this
.DoFilter(value, getAttribute(
'
accept
'
))
"
,
Limit :
"
this
.limit(value.length,getAttribute(
'
min
'
), getAttribute(
'
max
'
))
"
,
LimitB :
"
this
.limit(
this
.LenB(value), getAttribute(
'
min
'
), getAttribute(
'
max
'
))
"
,
Date :
"
this
.IsDate(value, getAttribute(
'
min
'
), getAttribute(
'
format
'
))
"
,
Repeat :
"
value
==
document.getElementsByName(getAttribute(
'
to
'
))[
0
].value
"
,
Range :
"
getAttribute(
'
min
'
)
<
(value
|
0
)
&&
(value
|
0
)
<
getAttribute(
'
max
'
)
"
,
Compare :
"
this
.compare(value,getAttribute(
'
operator
'
),getAttribute(
'
to
'
))
"
,
Custom :
"
this
.Exec(value, getAttribute(
'
regexp
'
))
"
,
Group :
"
this
.MustChecked(getAttribute(
'
name
'
), getAttribute(
'
min
'
), getAttribute(
'
max
'
))
"
,
ErrorItem : [document.forms[0]],
ErrorMessage : [
"
以下原因导致提交失败:\t\t\t\t
"
],
Validate : function(theForm, mode){
var obj = theForm || event.srcElement;
var count = obj.elements.length;
this.ErrorMessage.length = 1;
this.ErrorItem.length = 1;
this.ErrorItem[0] = obj;
for(var i=0;i<count;i++){
with(obj.elements[i]){
var _dataType = getAttribute(
"
dataType
"
);
if(typeof(_dataType) ==
"
object
"
|| typeof(this[_dataType]) ==
"
undefined
"
) continue;
this.ClearState(obj.elements[i]);
if(getAttribute(
"
require
"
) ==
"
false
"
&& value ==
""
) continue;
switch(_dataType){
case
"
Date
"
:
case
"
Repeat
"
:
case
"
Range
"
:
case
"
Compare
"
:
case
"
Custom
"
:
case
"
Group
"
:
case
"
Limit
"
:
case
"
LimitB
"
:
case
"
SafeString
"
:
case
"
Filter
"
:
if(!eval(this[_dataType])) {
this.AddError(i, getAttribute(
"
msg
"
));
}
break;
default :
if(!this[_dataType].test(value)){
this.AddError(i, getAttribute(
"
msg
"
));
}
break;
}
}
}
if(this.ErrorMessage.length > 1){
mode = mode || 1;
var errCount = this.ErrorItem.length;
switch(mode){
case 2 :
for(var i=1;i<errCount;i++)
this.ErrorItem[i].style.color =
"
red
"
;
case 1 :
alert(this.ErrorMessage.join(
"
\n
"
));
this.ErrorItem[1].focus();
break;
case 3 :
for(var i=1;i<errCount;i++){
try{
var span = document.createElement(
"
SPAN
"
);
span.id =
"
__ErrorMessagePanel
"
;
span.style.color =
"
red
"
;
this.ErrorItem[i].parentNode.appendChild(span);
span.innerHTML = this.ErrorMessage[i].replace(/\d+:/,
"
*
"
);
}
catch(e){alert(e.description);}
}
this.ErrorItem[1].focus();
break;
default :
alert(this.ErrorMessage.join(
"
\n
"
));
break;
}
return false;
}
return true;
},
limit : function(len,min, max){
min = min || 0;
max = max || Number.MAX_VALUE;
return min <= len && len <= max;
},
LenB : function(str){
return str.replace(/[^\x00-\xff]/g,
"
**
"
).length;
},
ClearState : function(elem){
with(elem){
if(style.color ==
"
red
"
)
style.color =
""
;
var lastNode = parentNode.childNodes[parentNode.childNodes.length-1];
if(lastNode.id ==
"
__ErrorMessagePanel
"
)
parentNode.removeChild(lastNode);
}
},
AddError : function(index, str){
this.ErrorItem[this.ErrorItem.length] = this.ErrorItem[0].elements[index];
this.ErrorMessage[this.ErrorMessage.length] = this.ErrorMessage.length +
"
:
"
+ str;
},
Exec : function(op, reg){
return new RegExp(reg,
"
g
"
).test(op);
},
compare : function(op1,operator,op2){
switch (operator) {
case
"
NotEqual
"
:
return (op1 != op2);
case
"
GreaterThan
"
:
return (op1 > op2);
case
"
GreaterThanEqual
"
:
return (op1 >= op2);
case
"
LessThan
"
:
return (op1 < op2);
case
"
LessThanEqual
"
:
return (op1 <= op2);
default:
return (op1 == op2);
}
},
MustChecked : function(name, min, max){
var groups = document.getElementsByName(name);
var hasChecked = 0;
min = min || 1;
max = max || groups.length;
for(var i=groups.length-1;i>=0;i--)
if(groups[i].checked) hasChecked++;
return min <= hasChecked && hasChecked <= max;
},
DoFilter : function(input, filter){
return new RegExp(
"
^
.
+
\.(
?=
EXT)(EXT)$
"
.replace(/EXT/g, filter.split(/\s*,\s*/).join(
"
|
"
)),
"
gi
"
).test(input);
},
IsDate : function(op, formatString){
formatString = formatString ||
"
ymd
"
;
var m, year, month, day;
switch(formatString){
case
"
ymd
"
:
m = op.match(new RegExp(
"
^
((\\d
{
4
}
)
|
(\\d
{
2
}
))([
-
.
/
])(\\d{1,2})\\4(\\d{1,2})$"));
if
(m
==
null
)
return
false
;
day
=
m[
6
];
month
=
m[
5
]
*
1
;
year
=
(m[
2
].length
==
4
)
?
m[
2
] : GetFullYear(parseInt(m[
3
],
10
));
break
;
case
"
dmy
"
:
m
=
op.match(
new
RegExp(
"
^(\\d{1,2})([-./])(\\d{1,2})\\2((\\d{4})|(\\d{2}))$
"
));
if
(m
==
null
)
return
false
;
day
=
m[
1
];
month
=
m[
3
]
*
1
;
year
=
(m[
5
].length
==
4
)
?
m[
5
] : GetFullYear(parseInt(m[
6
],
10
));
break
;
default
:
break
;
}
if
(
!
parseInt(month))
return
false
;
month
=
month
==
0
?
12
:month;
var
date
=
new
Date(year, month
-
1
, day);
return
(
typeof
(date)
==
"
object
"
&&
year
==
date.getFullYear()
&&
month
==
(date.getMonth()
+
1
)
&&
day
==
date.getDate());
function
GetFullYear(y)
{
return
((y
<
30
?
"
20
"
:
"
19
"
)
+
y)
|
0
;}
}
}
<
/
script>
查看全文
相关阅读:
C# in Depth Third Edition 学习笔记-- Lambda表达式和表达式树
几个比较实用的.Net 反编译工具
使用Microsoft.Practices.EnterpriseLibrary.Data调用存数过程Output参数注意事项
C# in Depth Third Edition 学习笔记-- C#2的一些特性
C# in Depth Third Edition 学习笔记-- 可空类型
C# in Depth Third Edition 学习笔记-- C#2.0: 解决C#1.0的问题 1 泛型
C# in Depth Third Edition 学习笔记-- 值类型和引用
.Net 程序员应该知道的工具和网站
HTML 转 PDF
C#、ASP.NET获取当前应用程序的绝对路径,获取程序工作路径 (转帖)
原文地址:https://www.cnblogs.com/zhangwen/p/1411710.html
最新文章
rematch:当你受不了redux繁琐写法的时候,是时候了解一波rematch了
react初探(二)之父子组件通信、封装公共组件
react初探(一)之JSX、状态(state)管理、条件渲染、事件处理
图解HTTP学习笔记
Android系统上如何实现easyconfig(airkiss)
2015年度总结--javaWeb
java服务器端编程
2015年度总结--android开发
java中使用mongodb的几种方式
android穿越之旅--如何弹出一个非比寻常的窗体
热门文章
穿越之旅之--android中如何执行java命令
如何穿越到android底层
使用最新最酷的安卓开发技术
elFinder的使用并整合ckeditor
fastjson 常用api
fastjson解析任意json
fastjson格式化bean的简易属性过滤器
nodejs安装和环境搭建
oracle 函数
SQL Server 2012 T-SQL基础教程--T-SQL查询和编程的背景
Copyright © 2011-2022 走看看