溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

JS常用正則表達式總結(jié)【經(jīng)典】

發(fā)布時間:2020-10-21 19:39:00 來源:腳本之家 閱讀:187 作者:zhilong001 欄目:web開發(fā)

本文實例講述了JS常用正則表達式。分享給大家供大家參考,具體如下:

在項目中個人寫的一個常用驗證的正則表達式:(僅供參考)

//定義兩個全局變量
var reg;
var errorInfo;
//輸入的數(shù)字類型必須是int型,正負整數(shù)都可以
function validate_integer(text,value){
reg=/^[-\+]?\d+$/;
errorInfo=text+" "+value+" 只能是整數(shù),請核實重新輸入!";
verifyByReg(value,reg,errorInfo);
}
//輸入的數(shù)字類型必須是double型,保留的小數(shù)位數(shù)只能是2位,可以為正負
function validate_double(text,value){
reg=/^[-\+]?([1-9](\d+)?|0)(\.\d{2})$/;
errorInfo=text+" "+value+" 只能保留2為小數(shù),請核實重新輸入";
verifyByReg(value,reg,errorInfo);
}
//輸入的必須是全是數(shù)字類型型,不能出現(xiàn)其他字符
function validate_number(text,value){
reg=/^\d+$/;
errorInfo=text+" "+value+" 只能是數(shù)字,請核實重新輸入";
verifyByReg(value,reg,errorInfo);
}
//驗證輸入n位的數(shù)值類型
function validate_number_n(text,value,n){
reg=eval("/^\\d{"+n+"}$/");
errorInfo=text+" "+value+" 只能是"+n+"位數(shù)字,請核實重新輸入";
verifyByReg(value,reg,errorInfo);
}
//驗證有兩位小數(shù)的正實數(shù)
function validate_decimal_two(text,value){
reg=/^([1-9](\d+)?|0)(.[0-9]{2})?$/;
errorInfo=text+" "+value+" 只能是保留2位小數(shù)的正數(shù),請核實重新輸入";
verifyByReg(value,reg,errorInfo);
}
//驗證非零的正整數(shù)
function validate_number_positive(text,value){
reg=/^\+?[1-9][0-9]*$/;
errorInfo=text+" "+value+" 只能是非0的正整數(shù),請核實重新輸入";
verifyByReg(value,reg,errorInfo);
}
//驗證非零的負整數(shù)
function validate_number_negative(text,value){
reg=/^[-][1-9][0-9]*$/;
errorInfo=text+" "+value+" 只能是非0的負整數(shù),請核實重新輸入";
verifyByReg(value,reg,errorInfo);
}
//驗證非負整數(shù),可以為0
function validate_positive_haszero(text,value){
reg=/^[1-9](\d+)?|0$/;
errorInfo=text+" "+value+" 只能是是0或正整數(shù),請核實重新輸入";
verifyByReg(value,reg,errorInfo);
}
//驗證非正整數(shù),可以為0
function validate_negative_haszero(text,value){
reg=/^\-[1-9](\d+)?|0$/;
errorInfo=text+" "+value+" 只能是是0或負整數(shù),請核實重新輸入";
verifyByReg(value,reg,errorInfo);
}
//驗證非負浮點數(shù)(正浮點數(shù) + 0)
function validate_float_notnegative(text,value){
reg=/^([1-9](\d+)?|0)(\.\d+)|0$/;
errorInfo=text+" "+value+" 只能是是0或正浮點數(shù),請核實重新輸入";
verifyByReg(value,reg,errorInfo);
}
//驗證正浮點數(shù)
function validate_float_positive(text,value){
reg=/^([1-9](\d+)?|0)(\.\d+)$/;
errorInfo=text+" "+value+" 只能是正浮點數(shù),請核實重新輸入";
verifyByReg(value,reg,errorInfo);
}
//非正浮點數(shù)(負浮點數(shù) + 0)
function validate_float_notpositive(text,value){
reg=/^\-([1-9](\d+)?|0)(\.\d+)|0$/;
errorInfo=text+" "+value+" 只能是是0或者負浮點數(shù),請核實重新輸入";
verifyByReg(value,reg,errorInfo);
}
//驗證負浮點數(shù)
function validate_float_negative(text,value){
reg=/^\-([1-9](\d+)?|0)(\.\d+)$/;
errorInfo=text+" "+value+" 只能是負浮點數(shù),請核實重新輸入";
verifyByReg(value,reg,errorInfo);
}
//驗證正浮點數(shù)多少位小數(shù)
function validate_float_posbit(text,value,n){
reg=eval("/^(\\d+)(\\.\\d{"+n+"})$/");
errorInfo=text+" "+value+" 只能是"+n+"位正浮點數(shù),請核實重新輸入";
verifyByReg(value,reg,errorInfo);
}
//驗證負浮點數(shù)多少位小數(shù)
function validate_float_negbit(text,value,n){
reg=eval("/^(-?\\d+)(\\.\\d{"+n+"})$/");
errorInfo=text+" "+value+" 只能是"+n+"位負浮點數(shù),請核實重新輸入";
verifyByReg(value,reg,errorInfo);
}
//校驗文本是否為空
function checknull(text,value){
if(value=="" || typeof(value)=='undefined'){
errorInfo=text+" "+value+" 不能為空,請重新輸入!";
returnInfo(errorInfo);
}
}
//驗證由26個英文字母組成的字符串
function validate_string_letter(text,value){
reg=/^[A-Za-z]+$/;
errorInfo=text+" "+value+" 只能是26位不區(qū)分大小寫的英文字母組成,請核實重新輸入";
verifyByReg(value,reg,errorInfo);
}
//驗證由26個英文字母的大寫組成的字符串
function validate_string_bigletter(text,value){
reg=/^[A-Z]+$/;
errorInfo=text+" "+value+" 只能是26位大寫的英文字母組成,請核實重新輸入";
verifyByReg(value,reg,errorInfo);
}
//驗證由26個英文字母的小寫組成的字符串
function validate_string_smallletter(text,value){
reg=/^[a-z]+$/;
errorInfo=text+" "+value+" 只能是26位小寫的英文字母組成,請核實重新輸入";
verifyByReg(value,reg,errorInfo);
}
//驗證由數(shù)字和26個英文字母組成的字符串
function validate_string_number(text,value){
reg=/^[A-Za-z0-9]+$/;
errorInfo=text+" "+value+" 只能是數(shù)字和26個英文字母組成,請核實重新輸入";
verifyByReg(value,reg,errorInfo);
}
//驗證由數(shù)字、26個英文字母或者下劃線組成的字符串
function validate_string_numberandunderline(text,value){
reg=/^\w+$/;
errorInfo=text+" "+value+" 只能是數(shù)字、26個英文字母或者下劃線組成,請核實重新輸入";
verifyByReg(value,reg,errorInfo);
}
//驗證郵箱
function validate_email(value){
reg=/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;
errorInfo='郵箱 '+value+" 無效,請重新輸入";
verifyByReg(value,reg,errorInfo);
}
//驗證時如果選擇默認調(diào)用此方法 金額類型,可以是正整數(shù)或保留4位有效數(shù)字的正整數(shù)
/**有問題
function validate_money_default(text,value){
var reg=/^\d+(\.\d{4})?$/;
var errorInfo=text+" "+value+" 只能是正整數(shù)或保留4位有效數(shù)字,請核實重新輸入";
verifyByReg(value,reg,errorInfo);
}
**/
//驗證輸入的只能是中文
function validate_chinese(text,value){
reg=/^[\u4e00-\u9fa5]+$/;
errorInfo=text+" "+value+" 只能是中文字符,請重新輸入";
verifyByReg(value,reg,errorInfo);
}
//驗證輸入的只能是n位的中文
function validate_bitchinese(text,value,bit){
reg=eval("/^[\\u4e00-\\u9fa5]{"+bit+"}$/");alert(reg);
errorInfo=text+" "+value+" 只能是"+bit+"位中文字符,請重新輸入";
verifyByReg(value,reg,errorInfo);
}
//跟最大的值比較,此方法是看數(shù)字是否超出系統(tǒng)的上限
function thanMax(text,number,max){
if(number>max){
errorInfo=text+" "+number+" 不能大于"+max+",請重新輸入";
returnInfo(errorInfo);
}
}
//跟最小的值比較,此方法是看數(shù)字是否低于系統(tǒng)的下限
function thinMin(text,number,min){
if(number<min){
errorInfo=text +" "+number+" 不能小于"+min+",請重新輸入";
returnInfo(errorInfo);
}
}
//輸入文本的字符串是否在系統(tǒng)的指定長度內(nèi)
function isLimit(text,value,length){
var arr=value.split("");
if(arr.length>length){
errorInfo=text +" "+value+" 字符過長,請輸入最多"+length+"位字符";
returnInfo(errorInfo);
}
}
//郵政編碼的驗證
function validate_zipcode(value){
reg=/[1-9]\d{5}(?!\d)/;
errorInfo='郵政編碼 '+value+" 有誤,請核實重新輸入";
verifyByReg(value,reg,errorInfo);
}
//對數(shù)值類型的數(shù)據(jù)進行簡單的驗證和轉(zhuǎn)換,因為在設(shè)置的時候沒有傳入這個參數(shù)的話就會出現(xiàn)js代碼錯誤,所以應(yīng)該對數(shù)值型的數(shù)據(jù)進行轉(zhuǎn)換
//非空字符的判定
function getZeroByNull(text,value){
errorInfo=text+" "+value+" 不能為空,請核實重新輸入";
if(value==null||value==''||value=='undefined'){
returnInfo(errorInfo);
}
}
//身份證驗證,分為了兩種,15位和18位
function validate_IdCard(value){
var size=value.split("");
if(size.length==15){
reg=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;//15位身份證驗證
errorInfo='位身份證號碼 '+value+" 有誤,請核實重新輸入";
}else if(size.length==18){
reg=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X|x)$/;//18位身份證驗證
errorInfo='位身份證號碼 '+value+" 有誤,請核實重新輸入";
}else{
errorInfo="請輸入合法的身份證號碼!";
returnInfo(errorInfo);
}
verifyByReg(value,reg,errorInfo);
}
//每個驗證都需要調(diào)用此方法
function verifyByReg(value,reg,errorInfo){
if(value!=''&&reg!=''){
var regExp = new RegExp(reg);
if(!regExp.test(value)){
alert(errorInfo);
throw errorInfo;
}
}
}
//不進過正則表達式驗證,只需要返回信息,適合內(nèi)部調(diào)用此方法
function returnInfo(message){
alert(message);
throw message;
}
//許可證號 生產(chǎn)企業(yè)的格式:QS 1234 2346 3456 其中空格可有可無
///經(jīng)營企業(yè)許可證的格式為: 湘010249 但是中國的省會簡稱可能會有三個字的,所以中文可以定義為1-3個
function validate_license(value,type){
if(type==1){
reg=/^[a-zA-Z]{2}[ ]?(\d{4}[ ]?\d{4}[ ]?\d{4})$/;//生產(chǎn)企業(yè)許可證號
errorInfo="生產(chǎn)許可證號 "+value+" 有誤,請核實重新輸入!";
}else if(type==2){
reg=/^[\u4e00-\u9fa5]{1,3}\d{6}$/;
errorInfo="經(jīng)營許可證號 "+value+" 有誤,請核實重新輸入!";
}
verifyByReg(value,reg,errorInfo);
}
//傳真 可以匹配的字符串如:+123 -999 999 ; +123-999 999 ;123 999 999 ;+123 999999等
function validate_fax(value){
reg=/^([+]{0,1})?\d{1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
errorInfo="傳真 "+value+" 有誤,請重新輸入!";
verifyByReg(value,reg,errorInfo);
}
//電話號碼可以輸入:電話或者手機 其中手機號碼可以是(+86)、(86)+號碼,也可以是號碼 電話的號碼可以是區(qū)號+號碼 區(qū)號-號碼 號碼
function validate_tel(value){
reg=/(^(0\d{2,3}([-|+])?)?\d{7}$)|(^(\d{3,4}([-|+])?)?\d{7,8}$)|(^([+]?(86)?[+]?)1[3-9]\d{9}$)/;
errorInfo='電話號碼 '+value+" 有誤,請核實重新輸入!";
verifyByReg(value,reg,errorInfo);
}
//日:大于0小于等于31的正整數(shù)
function validate_day(value){
reg=/(^[0]?[1-9]$)|(^[1-2]\d$)|(^[3][0-1]$)/;
errorInfo='日期 '+value+" 有誤,請核實重新輸入!";
verifyByReg(value,reg,errorInfo);
}
//月:合法月份
function validate_month(value){
reg=/(^[0]?[1-9]$)|(^[1][0-2]$)/;
errorInfo='月份 '+value+" 有誤,請核實重新輸入!";
verifyByReg(value,reg,errorInfo);
}
//年:合法年份 在這里合法的年份為公元1000年至公元2999年
function validate_year(value){
reg=/^[1-2]\d{3}$/;
errorInfo='年份 '+value+" 有誤,請核實重新輸入!";
verifyByReg(value,reg,errorInfo);
}
//百分比:合法百分比(0-100之前的數(shù)字)
function validate_percentage(text,value){
reg=/(^[1-9](\d)?(\.\d+)?$)|(^0(\.\d+)?$)|(^100$)/;
errorInfo=text +" "+value+" 有誤,請輸入0到100的數(shù)字!";
verifyByReg(value,reg,errorInfo);
}
//系數(shù):小于等于1的正數(shù) 在這里系數(shù)的小數(shù)點后面也是2位
function validate_modulus(text,value){
reg=/^[0](\.\d{2})$|^[1](\.[0]{2})?$/;
errorInfo=text+" "+value+" 有誤,請輸入小于0到1的數(shù)字!";
verifyByReg(value,reg,errorInfo);
}
//驗證非負的正數(shù),包含了正整數(shù)和正浮點數(shù)
function validate_posnumhaszero(text,value){
checknull(text,value);
reg=/^[1-9](\d+)?(\.\d+)?$|^0(\.\d+)?$/;
errorInfo=text+" "+value+" 有誤,請輸入大于或等于0 的數(shù)字!";
verifyByReg(value,reg,errorInfo);
}
//驗證非正的負數(shù),包含了負整數(shù)和負浮點數(shù)
function validate_negnumhaszero(text,value){
checknull(text,value);
reg=/^[-][1-9](\d+)?(\.\d+)?$|^[-]0(\.\d+)?$/;
errorInfo=text+" "+value+" 有誤,請輸入小于或等于0 的數(shù)字!";
verifyByReg(value,reg,errorInfo);
}
//驗證正數(shù),包含了正整數(shù)和正浮點數(shù)
function validate_posnum(text,value){
checknull(text,value);
reg=/^[1-9](\d+)?(\.\d+)?$|^0(\.\d+)$/;
errorInfo=text+" "+value+" 有誤,請輸入大于0 的數(shù)字!";
verifyByReg(value,reg,errorInfo);
}
//驗證負數(shù),包含了負整數(shù)和負浮點數(shù)
function validate_negnum(text,value){
checknull(text,value);
reg=/^[-][1-9](\d+)?(\.\d+)?$|^[-]0(\.\d+)$/;
errorInfo=text+" "+value+" 有誤,請輸入小于0 的數(shù)字!";
verifyByReg(value,reg,errorInfo);
}
//驗證數(shù),包括所有的數(shù)值,正數(shù)、負數(shù)、正浮點數(shù)、負浮點數(shù)
function validate_allnum(text,value){
checknull(text,value);
reg=/^[-|+]?[1-9](\d+)?(\.\d+)?$|^[-|+]?0(\.\d+)?$/;
errorInfo=text+" "+value+" 有誤,請輸入數(shù)字!";
verifyByReg(value,reg,errorInfo);
}

PS:這里再為大家提供2款非常方便的正則表達式工具供大家參考使用:

JavaScript正則表達式在線測試工具:
http://tools.jb51.net/regex/javascript

正則表達式在線生成工具:
http://tools.jb51.net/regex/create_reg

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript正則表達式技巧大全》、《JavaScript替換操作技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》、《JavaScript中json操作技巧總結(jié)》、《JavaScript錯誤與調(diào)試技巧總結(jié)》及《JavaScript數(shù)學(xué)運算用法總結(jié)》

希望本文所述對大家JavaScript程序設(shè)計有所幫助。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI