常用正则验证

一、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;

}

相关推荐