對正則表達式也有研究過,但是對於一些常用的東西直接讓手寫的話還是有點問題的,,下面對一些正則表達式的基本知識就不講解了,這里是我寫的和在網上摘抄的一些正則表達式驗證,以后需要直接采摘就是了:
匹配網址URL的正則表達式:
1:[url=http://([w-]+.)+[w-]+(/[w[/url]http://([w-]+.)+[w-]+(/[w[/url[/url]]- ./?%&=]*)? 2:^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$ 3:^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$
匹配Email地址的正則表達式:
1:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 2:^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$ 3:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
匹配HTML標記的正則表達式:
:/<(.*)>.*<\/\1>|<(.*) \/>/
數值相關和效驗函數:
"^\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+)?$" //浮點數
匹配日期的正則表達式和效驗函數:
/^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/ // 年-月-日
/^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/ // 月/日/年
//短時間,形如 (13:04:06)
function isTime(str)
{
var a = str.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/);
if (a == null) {return false}
if (a[1]>24 || a[3]>60 || a[4]>60)
{
return false;
}
return true;
}
//短日期,形如 (2003-12-05)
function isDate(str)
{
var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
if(r==null)return false;
var d= new Date(r[1], r[3]-1, r[4]);
return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
}
//長時間,形如 (2003-12-05 13:04:06)
function isDateTime(str)
{
var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;
var r = str.match(reg);
if(r==null) return false;
var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]);
return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]);
}
由於園友提示,另加驗證:
身份證號驗證:
if(len==15)
{
var reg=/^([1-9]{0,1})?(\d){1,13}((\d)|x)?$/ //十五位
}
else if(len==18)
{
var reg=/^([1-9]{0,1})?(\d){1,16}((\d)|x)?$/ //十八位
}
電話號碼驗證:
var phoneRegWithArea = /^[0][1-9]{2,3}-[0-9]{5,8}$/;
var phoneRegNoArea = /^[1-9]{1}[0-9]{5,8}$/;
手機號碼:
var regu =/^[1][3,5,8][0-9]{9}$/;
用戶名:
//強制用戶名最短3個字符最長不超過16個字符
/^[a-zA-Z0-9_]{3,16}$/
