常用正则验证
一、IP地址校验
/*
用途:校验ip地址的格式
输入:strIP:ip地址
返回:如果通过验证返回true,否则返回false;
*/
functionisIP(strIP){
if(isNull(strIP))returnfalse;
varre=/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/g//匹配IP地址的正则表达式
if(re.test(strIP)){
if(RegExp.$1正则表达式。
RegExp.$1是RegExp的一个属性,指的是与正则表达式匹配的第一个子匹配(以括号为标志)字符串,以此类推,RegExp.$2,RegExp.$3,..RegExp.$99总共可以有99个匹配
给你看了例子就知道了
varr=/^(\d{4})-(\d{1,2})-(\d{1,2})$/;//正则表达式匹配出生日期(简单匹配)
r.exec('1985-10-15');
s1=RegExp.$1;
s2=RegExp.$2;
s3=RegExp.$3;
alert(s1+""+s2+""+s3)//结果为19851015
RegExp对象
RegExp对象表示正则表达式,它是对字符串执行模式匹配的强大工具。
直接量语法
/pattern/attributes
创建RegExp对象的语法:
newRegExp(pattern,attributes);
参数
参数pattern是一个字符串,指定了正则表达式的模式或其他正则表达式。
参数attributes是一个可选的字符串,包含属性"g"、"i"和"m",分别用于指定全局匹配、区分大小写的匹配和多行匹配。ECMAScript标准化之前,不支持m属性。如果pattern是正则表达式,而不是字符串,则必须省略该参数。
返回值
一个新的RegExp对象,具有指定的模式和标志。如果参数pattern是正则表达式而不是字符串,那么RegExp()构造函数将用与指定的RegExp相同的模式和标志创建一个新的RegExp对象。
如果不用new运算符,而将RegExp()作为函数调用,那么它的行为与用new运算符调用时一样,只是当pattern是正则表达式时,它只返回pattern,而不再创建一个新的RegExp对象。
抛出
SyntaxError-如果pattern不是合法的正则表达式,或attributes含有"g"、"i"和"m"之外的字符,抛出该异常。
TypeError-如果pattern是RegExp对象,但没有省略attributes参数,抛出该异常。
修饰符
修饰符描述
i
执行对大小写不敏感的匹配。
g
执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
m执行多行匹配。
方括号
方括号用于查找某个范围内的字符:
表达式描述
[abc]
查找方括号之间的任何字符。
[^abc]
查找任何不在方括号之间的字符。
[0-9]查找任何从0至9的数字。
[a-z]查找任何从小写a到小写z的字符。
[A-Z]查找任何从大写A到大写Z的字符。
[a-Z]查找任何从小写a到大写Z的字符。
[adgk]查找给定集合内的任何字符。
[^adgk]查找给定集合外的任何字符。
[red|blue|green]查找任何指定的选项。
元字符
元字符(Metacharacter)是拥有特殊含义的字符:
元字符描述
.
查找单个字符,除了换行和行结束符。
\w
查找单词字符。
\W
查找非单词字符。
\d
查找数字。
\D
查找非数字字符。
\s
查找空白字符。
\S
查找非空白字符。
\b
查找位于单词的开头或结尾的匹配。
\B
查找不处在单词的开头或结尾的匹配。
\0查找NUL字符。
\n
查找换行符。
\f查找换页符。
\r查找回车符。
\t查找制表符。
\v查找垂直制表符。
\xxx
查找以八进制数xxx规定的字符。
\xdd
查找以十六进制数dd规定的字符。
\uxxxx
查找以十六进制数xxxx规定的Unicode字符。
量词
量词描述
n+
匹配任何包含至少一个n的字符串。
n*
匹配任何包含零个或多个n的字符串。
n?
匹配任何包含零个或一个n的字符串。
n{X}
匹配包含X个n的序列的字符串。
n{X,Y}
匹配包含X或Y个n的序列的字符串。
n{X,}
匹配包含至少X个n的序列的字符串。
n$
匹配任何结尾为n的字符串。
^n
匹配任何开头为n的字符串。
?=n
匹配任何其后紧接指定字符串n的字符串。
?!n
匹配任何其后没有紧接指定字符串n的字符串。
RegExp对象属性
FF:Firefox,IE:InternetExplorer
属性描述FFIE
global
RegExp对象是否具有标志g。14
ignoreCase
RegExp对象是否具有标志i。14
lastIndex
一个整数,标示开始下一次匹配的字符位置。14
multiline
RegExp对象是否具有标志m。14
source
正则表达式的源文本。14
RegExp对象方法
FF:Firefox,IE:InternetExplorer
方法描述FFIE
compile
编译正则表达式。14
exec
检索字符串中指定的值。返回找到的值,并确定其位置。14
test
检索字符串中指定的值。返回true或false。14
支持正则表达式的String对象的方法
FF:Firefox,IE:InternetExplorer
方法描述FFIE
search
检索与正则表达式相匹配的值。14
match
找到一个或多个正则表达式的匹配。14
replace
替换与正则表达式匹配的子串。14
split
把字符串分割为字符串数组。
二、检查输入字符串是否为空或者全部都是空格
/*
用途:检查输入字符串是否为空或者全部都是空格
输入:str
返回:如果全是空返回true,否则返回false
*/
functionisNull(str){
if(str=="")returntrue;
varregu="^[]+$";
varre=newRegExp(regu);
returnre.test(str);
}
三、检查输入手机号码是否正确
/*
用途:检查输入手机号码是否正确
输入:
s:字符串
返回:
如果通过验证返回true,否则返回false
*/
functioncheckMobile(s){
varregu=/^[1][3][0-9]{9}$/;
varre=newRegExp(regu);
if(re.test(s)){
returntrue;
}else{
returnfalse;
}
}
四、检查输入对象的值是否符合整数格式
/*
用途:检查输入对象的值是否符合整数格式
输入:str输入的字符串
返回:如果通过验证返回true,否则返回false
*/
functionisInteger(str){
varregu=/^[-]{0,1}[0-9]{1,}$/;
returnregu.test(str);
}
五、
/*
用途:检查输入字符串是否符合正整数格式
输入:
s:字符串
返回:
如果通过验证返回true,否则返回false
*/
functionisNumber(s){
varregu="^[0-9]+$";
varre=newRegExp(regu);
if(s.search(re)!=-1){
returntrue;
}else{
returnfalse;
}
}
六、
/*
用途:检查输入字符串是否是带小数的数字格式,可以是负数
输入:
s:字符串
返回:
如果通过验证返回true,否则返回false
*/
functionisDecimal(str){
if(isInteger(str))returntrue;
varre=/^[-]{0,1}(\d+)[\.]+(\d+)$/;
if(re.test(str)){
if(RegExp.$1==0&&RegExp.$2==0)returnfalse;
returntrue;
}else{
returnfalse;
}
}
七、
/*
用途:检查输入对象的值是否符合端口号格式
输入:str输入的字符串
返回:如果通过验证返回true,否则返回false
*/
functionisPort(str){
return(isNumber(str)&&str"2100"||year"12"||monthgetMaxDay(year,month)||day=起始日期
输入:
startDate:起始日期,字符串
endDate:结束如期,字符串
返回:
如果通过验证返回true,否则返回false
*/
functioncheckTwoDate(startDate,endDate){
if(!isDate(startDate)){
alert("起始日期不正确!");
returnfalse;
}elseif(!isDate(endDate)){
alert("终止日期不正确!");
returnfalse;
}elseif(startDate>endDate){
alert("起始日期不能大于终止日期!");
returnfalse;
}
returntrue;
}
十九、
/*
用途:检查输入的Email信箱格式是否正确
输入:
strEmail:字符串
返回:
如果通过验证返回true,否则返回false
*/
functioncheckEmail(strEmail){
//varemailReg=/^[_a-z0-9]+@([_a-z0-9]+\.)+[a-z0-9]{2,3}$/;
varemailReg=/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;
if(emailReg.test(strEmail)){
returntrue;
}else{
alert("您输入的Email地址格式不正确!");
returnfalse;
}
}
二十、
/*
用途:检查输入的电话号码格式是否正确
输入:
strPhone:字符串
返回:
如果通过验证返回true,否则返回false
*/
functioncheckPhone(strPhone){
varphoneRegWithArea=/^[0][1-9]{2,3}-[0-9]{5,10}$/;
varphoneRegNoArea=/^[1-9]{1}[0-9]{5,8}$/;
varprompt="您输入的电话号码不正确!"
if(strPhone.length>9){
if(phoneRegWithArea.test(strPhone)){
returntrue;
}else{
alert(prompt);
returnfalse;
}
}else{
if(phoneRegNoArea.test(strPhone)){
returntrue;
}else{
alert(prompt);
returnfalse;
}
}
}
二十一、
/*
用途:检查复选框被选中的数目
输入:
checkboxID:字符串
返回:
返回该复选框中被选中的数目
*/
functioncheckSelect(checkboxID){
varcheck=0;
vari=0;
if(document.all(checkboxID).length>0){
for(i=0;i<document.all(checkboxID).length;i++){
if(document.all(checkboxID).item(i).checked){
check+=1;
}
}
}else{
if(document.all(checkboxID).checked)
check=1;
}
returncheck;
}