• 技术文章 >web前端 >js教程

    JS正则表达式详解

    小云云小云云2018-03-30 17:32:53原创871

    本文主要和大家分享JS正则表达式详解,主要以文字和代码的的方式和大家分享,希望能帮助到大家。

    一、正則表達式應用

    “^\d+$”  //非负整数(正整数 + 0)  
    “^[0-9][1-9][0-9]
    ”  //非正整数(负整数 + 0)  
    “^-[0-9][1-9][0-9]
    ”    //整数  
    “^\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]))
    ”  //非正浮点数(负浮点数 + 0)  
    “^(-(([0-9]+.[0-9][1-9][0-9])|([0-9][1-9][0-9].[0-9]+)|([0-9][1-9][0-9])))
    ”  //浮点数  
    “^[A-Za-z]+
    ”  //由26个英文字母的大写组成的字符串  
    “^[a-z]+
    ”  //由数字和26个英文字母组成的字符串  
    “^\w+
    ”    //email地址  
    “^[a-zA-z]+://(\w+(-\w+))(.(\w+(-\w+)))(\?\S)?$”  //url 
    /^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-((0-2)|(3[0|1]))$/   //  年-月-日 
    /^((0([1-9]{1}))|(1[1|2]))/((0-2)|(3[0|1]))/(d{2}|d{4})
    ”   //Emil 
    “(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?”     //电话号码 
    “^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])
    //MAC地址的正则表达式 
    ^[-+]?\d+(.\d+)?$  //值类型正则表达式
    
    “^\d+$”  //非负整数(正整数 + 0)  
    “^[0-9][1-9][0-9]
    ”  //非正整数(负整数 + 0)  
    “^-[0-9][1-9][0-9]
    ”    //整数  
    “^\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]))
    ”  //非正浮点数(负浮点数 + 0)  
    “^(-(([0-9]+\.[0-9][1-9][0-9])|([0-9][1-9][0-9]\.[0-9]+)|([0-9][1-9][0-9])))
    ”  //浮点数  
    “^[A-Za-z]+
    ”  //由26个英文字母的大写组成的字符串  
    “^[a-z]+
    ”  //由数字和26个英文字母组成的字符串  
    “^\w+
    ”    //email地址  
    “^[a-zA-z]+://(\w+(-\w+))(\.(\w+(-\w+)))(\?\S)?$”  //url

    二、javascript正则表达式检验

    //校验是否全由数字组成  
    function isDigit(s) 
    { 
    var patrn=/^[0-9]{1,20}$/; 
    if (!patrn.exec(s)) return false 
    return true 
    }
    //校验登录名:只能输入5-20个以字母开头、可带数字、“_”、“.”的字串  
    function isRegisterUserName(s) 
    { 
    var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/; 
    if (!patrn.exec(s)) return false 
    return true 
    }
    //校验用户姓名:只能输入1-30个以字母开头的字串  
    function isTrueName(s) 
    { 
    var patrn=/^[a-zA-Z]{1,30}$/; 
    if (!patrn.exec(s)) return false 
    return true 
    }
    //校验密码:只能输入6-20个字母、数字、下划线  
    function isPasswd(s) 
    { 
    var patrn=/^(\w){6,20}$/; 
    if (!patrn.exec(s)) return false 
    return true 
    }
    //校验普通电话、传真号码:可以“+”开头,除数字外,可含有“-”  
    function isTel(s) 
    { 
    //var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?(\d){1,12})+
    /; 
    if (!patrn.exec(s)) return false 
    return true 
    }
    
    //校验手机号码:必须以数字开头,除数字外,可含有“-” 
    function isMobil(s) 
    { 
    var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/; 
    if (!patrn.exec(s)) return false 
    return true 
    }
    //校验邮政编码 
    function isPostalCode(s) 
    { 
    //var patrn=/^[a-zA-Z0-9]{3,12}
    /; 
    if (!patrn.exec(s)) return false 
    return true 
    }
    
    //校验搜索关键字 
    function isSearch(s) 
    { 
    var patrn=/^[^~!@#$%^&*()+=|\\\][\]\{\}:;\'\,.<>/?]{1}[^~!@
    /; 
    if (!patrn.exec(s)) return false 
    return true 
    } 
    function isIP(s) //by zergling 
    { 
    var patrn=/^[0-9.]{1,20}$/; 
    if (!patrn.exec(s)) return false 
    return true 
    }
    
    /*********************************************************************** 
    * FUNCTION: isBetween 
    * PARAMETERS: val AS any value 
    * lo AS Lower limit to check 
    * hi AS Higher limit to check 
    * CALLS: NOTHING 
    * RETURNS: TRUE if val is between lo and hi both inclusive, otherwise false. 
    ************************************************************************/ 
    function isBetween (val, lo, hi) { 
    if ((val < lo) || (val > hi)) { return(false); } 
    else { return(true); } 
    } 
    /*********************************************************************** 
    * FUNCTION: isDate checks a valid date 
    * PARAMETERS: theStr AS String 
    * CALLS: isBetween, isInt 
    * RETURNS: TRUE if theStr is a valid date otherwise false. 
    ************************************************************************/ 
    function isDate (theStr) { 
    var the1st = theStr.indexOf(‘-‘); 
    var the2nd = theStr.lastIndexOf(‘-‘); 
    if (the1st == the2nd) { return(false); } 
    else { 
    var y = theStr.substring(0,the1st); 
    var m = theStr.substring(the1st+1,the2nd); 
    var d = theStr.substring(the2nd+1,theStr.length); 
    var maxDays = 31; 
    if (isInt(m)==false || isInt(d)==false || isInt(y)==false) { 
    return(false); } 
    else if (y.length < 4) { return(false); } 
    else if (!isBetween (m, 1, 12)) { return(false); } 
    else if (m==4 || m==6 || m==9 || m==11) maxDays = 30; 
    else if (m==2) { 
    if (y % 4 > 0) maxDays = 28; 
    else if (y % 100 == 0 && y % 400 > 0) maxDays = 28; 
    else maxDays = 29; 
    } 
    if (isBetween(d, 1, maxDays) == false) { return(false); } 
    else { return(true); } 
    } 
    } 
    /*********************************************************************** 
    * FUNCTION: isEuDate checks a valid date in British format 
    * PARAMETERS: theStr AS String 
    * CALLS: isBetween, isInt 
    * RETURNS: TRUE if theStr is a valid date otherwise false. 
    ************************************************************************/ 
    function isEuDate (theStr) { 
    if (isBetween(theStr.length, 8, 10) == false) { return(false); } 
    else { 
    var the1st = theStr.indexOf(‘/’); 
    var the2nd = theStr.lastIndexOf(‘/’); 
    if (the1st == the2nd) { return(false); } 
    else { 
    var m = theStr.substring(the1st+1,the2nd); 
    var d = theStr.substring(0,the1st); 
    var y = theStr.substring(the2nd+1,theStr.length); 
    var maxDays = 31; 
    if (isInt(m)==false || isInt(d)==false || isInt(y)==false) { 
    return(false); } 
    else if (y.length < 4) { return(false); } 
    else if (isBetween (m, 1, 12) == false) { return(false); } 
    else if (m==4 || m==6 || m==9 || m==11) maxDays = 30; 
    else if (m==2) { 
    if (y % 4 > 0) maxDays = 28; 
    else if (y % 100 == 0 && y % 400 > 0) maxDays = 28; 
    else maxDays = 29; 
    } 
    if (isBetween(d, 1, maxDays) == false) { return(false); } 
    else { return(true); } 
    } 
    } 
    } 
    /********************************************************************** 
    * FUNCTION: Compare Date! Which is the latest! 
    * PARAMETERS: lessDate,moreDate AS String 
    * CALLS: isDate,isBetween 
    * RETURNS: TRUE if lessDate
    参考网址:http://www.jb51.net/article/72044.htm 
    一、正則表達式應用 
    “^\d+$”  //非负整数(正整数 + 0)  
    “^[0-9][1-9][0-9]
    ”  //非正整数(负整数 + 0)  
    “^-[0-9][1-9][0-9]
    ”    //整数  
    “^\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]))
    ”  //非正浮点数(负浮点数 + 0)  
    “^(-(([0-9]+.[0-9][1-9][0-9])|([0-9][1-9][0-9].[0-9]+)|([0-9][1-9][0-9])))
    ”  //浮点数  
    “^[A-Za-z]+
    ”  //由26个英文字母的大写组成的字符串  
    “^[a-z]+
    ”  //由数字和26个英文字母组成的字符串  
    “^\w+
    ”    //email地址  
    “^[a-zA-z]+://(\w+(-\w+))(.(\w+(-\w+)))(\?\S)?$”  //url 
    /^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-((0-2)|(3[0|1]))$/   //  年-月-日 
    /^((0([1-9]{1}))|(1[1|2]))/((0-2)|(3[0|1]))/(d{2}|d{4})
    ”   //Emil 
    “(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?”     //电话号码 
    “^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])
    //MAC地址的正则表达式 
    ^[-+]?\d+(.\d+)?$  //值类型正则表达式
    
    “^\d+$”  //非负整数(正整数 + 0)  
    “^[0-9][1-9][0-9]
    ”  //非正整数(负整数 + 0)  
    “^-[0-9][1-9][0-9]
    ”    //整数  
    “^\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]))
    ”  //非正浮点数(负浮点数 + 0)  
    “^(-(([0-9]+\.[0-9][1-9][0-9])|([0-9][1-9][0-9]\.[0-9]+)|([0-9][1-9][0-9])))
    ”  //浮点数  
    “^[A-Za-z]+
    ”  //由26个英文字母的大写组成的字符串  
    “^[a-z]+
    ”  //由数字和26个英文字母组成的字符串  
    “^\w+
    ”    //email地址  
    “^[a-zA-z]+://(\w+(-\w+))(\.(\w+(-\w+)))(\?\S)?$”  //url
    
    二、javascript正则表达式检验 
    //校验是否全由数字组成  
    function isDigit(s) 
    { 
    var patrn=/^[0-9]{1,20}$/; 
    if (!patrn.exec(s)) return false 
    return true 
    }
    //校验登录名:只能输入5-20个以字母开头、可带数字、“_”、“.”的字串  
    function isRegisterUserName(s) 
    { 
    var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/; 
    if (!patrn.exec(s)) return false 
    return true 
    }
    //校验用户姓名:只能输入1-30个以字母开头的字串  
    function isTrueName(s) 
    { 
    var patrn=/^[a-zA-Z]{1,30}$/; 
    if (!patrn.exec(s)) return false 
    return true 
    }
    //校验密码:只能输入6-20个字母、数字、下划线  
    function isPasswd(s) 
    { 
    var patrn=/^(\w){6,20}$/; 
    if (!patrn.exec(s)) return false 
    return true 
    }
    //校验普通电话、传真号码:可以“+”开头,除数字外,可含有“-”  
    function isTel(s) 
    { 
    //var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?(\d){1,12})+
    /; 
    if (!patrn.exec(s)) return false 
    return true 
    }
    
    //校验手机号码:必须以数字开头,除数字外,可含有“-” 
    function isMobil(s) 
    { 
    var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/; 
    if (!patrn.exec(s)) return false 
    return true 
    }
    //校验邮政编码 
    function isPostalCode(s) 
    { 
    //var patrn=/^[a-zA-Z0-9]{3,12}
    /; 
    if (!patrn.exec(s)) return false 
    return true 
    }
    
    //校验搜索关键字 
    function isSearch(s) 
    { 
    var patrn=/^[^~!@#$%^&*()+=|\\\][\]\{\}:;\'\,.<>/?]{1}[^~!@
    /; 
    if (!patrn.exec(s)) return false 
    return true 
    } 
    function isIP(s) //by zergling 
    { 
    var patrn=/^[0-9.]{1,20}$/; 
    if (!patrn.exec(s)) return false 
    return true 
    }
    
    /*********************************************************************** 
    * FUNCTION: isBetween 
    * PARAMETERS: val AS any value 
    * lo AS Lower limit to check 
    * hi AS Higher limit to check 
    * CALLS: NOTHING 
    * RETURNS: TRUE if val is between lo and hi both inclusive, otherwise false. 
    ************************************************************************/ 
    function isBetween (val, lo, hi) { 
    if ((val < lo) || (val > hi)) { return(false); } 
    else { return(true); } 
    } 
    /*********************************************************************** 
    * FUNCTION: isDate checks a valid date 
    * PARAMETERS: theStr AS String 
    * CALLS: isBetween, isInt 
    * RETURNS: TRUE if theStr is a valid date otherwise false. 
    ************************************************************************/ 
    function isDate (theStr) { 
    var the1st = theStr.indexOf(‘-‘); 
    var the2nd = theStr.lastIndexOf(‘-‘); 
    if (the1st == the2nd) { return(false); } 
    else { 
    var y = theStr.substring(0,the1st); 
    var m = theStr.substring(the1st+1,the2nd); 
    var d = theStr.substring(the2nd+1,theStr.length); 
    var maxDays = 31; 
    if (isInt(m)==false || isInt(d)==false || isInt(y)==false) { 
    return(false); } 
    else if (y.length < 4) { return(false); } 
    else if (!isBetween (m, 1, 12)) { return(false); } 
    else if (m==4 || m==6 || m==9 || m==11) maxDays = 30; 
    else if (m==2) { 
    if (y % 4 > 0) maxDays = 28; 
    else if (y % 100 == 0 && y % 400 > 0) maxDays = 28; 
    else maxDays = 29; 
    } 
    if (isBetween(d, 1, maxDays) == false) { return(false); } 
    else { return(true); } 
    } 
    } 
    /*********************************************************************** 
    * FUNCTION: isEuDate checks a valid date in British format 
    * PARAMETERS: theStr AS String 
    * CALLS: isBetween, isInt 
    * RETURNS: TRUE if theStr is a valid date otherwise false. 
    ************************************************************************/ 
    function isEuDate (theStr) { 
    if (isBetween(theStr.length, 8, 10) == false) { return(false); } 
    else { 
    var the1st = theStr.indexOf(‘/’); 
    var the2nd = theStr.lastIndexOf(‘/’); 
    if (the1st == the2nd) { return(false); } 
    else { 
    var m = theStr.substring(the1st+1,the2nd); 
    var d = theStr.substring(0,the1st); 
    var y = theStr.substring(the2nd+1,theStr.length); 
    var maxDays = 31; 
    if (isInt(m)==false || isInt(d)==false || isInt(y)==false) { 
    return(false); } 
    else if (y.length < 4) { return(false); } 
    else if (isBetween (m, 1, 12) == false) { return(false); } 
    else if (m==4 || m==6 || m==9 || m==11) maxDays = 30; 
    else if (m==2) { 
    if (y % 4 > 0) maxDays = 28; 
    else if (y % 100 == 0 && y % 400 > 0) maxDays = 28; 
    else maxDays = 29; 
    } 
    if (isBetween(d, 1, maxDays) == false) { return(false); } 
    else { return(true); } 
    } 
    } 
    } 
    /********************************************************************** 
    * FUNCTION: Compare Date! Which is the latest! 
    * PARAMETERS: lessDate,moreDate AS String 
    * CALLS: isDate,isBetween 
    * RETURNS: TRUE if lessDate

    以上就是JS正则表达式详解的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:javascript 表达式 正则
    上一篇:使用ajax实现菜单栏的三级联动 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 一文聊聊Node包管理发展的五个阶段• 带你了解Angular组件间进行通信的几种方法• 聊聊怎么用node写入读取文件内容• react 怎么实现按需加载• 聊聊Node中怎么用async函数
    1/1

    PHP中文网