正则表达式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式相关的知识,希望对你有一定的参考价值。

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>正则表达式</title>
    <script src="js/jquery-1.8.2.min.js"></script>
    <script type="text/javascript">
        //正则表达式中“^”用于匹配行首,如果正则表达式匹配以first开头的行,则正则表达式如下:^first
        //正则表达式中“$”用于匹配行尾,如果正则表达式匹配以end结尾的行,则正则表达式如下:end$
        //正则表达式中“\w”用于匹配单词字符,单词字符包括汉字、字母、数字或下划线。"\W"用于匹配任意的非单词字符
        //正则表达式中“\s”用于匹配任意的空白字符,空白字符包括换行符、空格、制表符等。“\S”用于匹配任意的非空白符
        //正则表达式中“\d”用于匹配任意的数字,数字包括0,1,2,3,4,5,6,7,8,9。"\D"用于匹配任意的非数字字符。
        //正则表达式中“.”用于匹配除换行符以外的任意字符。如,正则表达式"^...$"匹配了字符串"abc",同时也会匹配“123”和“1a”。
        //正则表达式中“!”用于指定字符本身重复出现的次数。
        //正则表达式中“?”用于限定指定的字符出现0次或一次。
        //正则表达式中“*”用于限定指定的字符至少出现0次。
        //正则表达式中“+”用于限定指定的字符至少出现一次。
        //正则表达式中“n”用于限定指定的字符出现n次。
        //正则表达式中“{n,}”用于限定指定的字符出现n次。如,^c{5,}$,c可以出现5次或5次以上。
        //正则表达式中“{n,m}”用于限定指定的字符至少出现n次,最多出现m次。
        function checkPhone() {
            //电话号码有数字-组成。\d表示数字,{3,4}表示只能输入3、4个数字,-表示要在数字后面显示,?表示3、4个数字只能出现0或者1次,{6,8}表示只能输入6、8个数字,$表示匹配行结束。
            var phone = $("#txtPhone").val();
            if (/^(\d{3,4}-)?\d{6,8}$/.test(phone)) {
                alert("电话号码验证成功");
            }
            else {
                alert("电话号码验证失败");
            }
        }
        function checkPostcode() {
            //邮政编码有6个数字组成。\d表示匹配的数字,{6}是限定符,表示匹配6个数字,$表示匹配行结束。
            var Postcode = $("#txtPostcode").val();
            if (/^\d{6}$/.test(Postcode)) {
                alert("邮政编码验证成功");
            }
            else {
                alert("邮政编码验证失败");
            }
        }
        function checkPassword() {
            //密码要求6位数字以上,而且不可以是纯字母或数字,只允许输入带字母或数字的字符串。[A-Za-z]表示匹配大小写字母,+表示匹配一个到多个大小写字母,[0-9]表示匹配数字。
            var Password = $("#txtPassword").val();
            if (/[A-Za-z]+[0-9]/.test(Password)) {
                alert("输入密码条件验证成功");
            }
            else {
                alert("输入密码条件验证失败");
            }
        }
        function checkHandset() {
            //^表示匹配行开始,[1]表示匹配数字1,[3-5]表示匹配数字3,4,5,\d表示匹配数字,{9}表示匹配9个数字,$表示匹配行结束。
            var Handset = $("#txtHandset").val();
            if (/^[1][3-5]\d{9}$/.test(Handset)) {
                alert("手机号码验证成功");
            }
            else {
                alert("手机号码验证失败");
            }
        }
        function checkIdcard() {
            //身份证分15位或18位两种。^表示匹配行开始,\d表示匹配数字,{18}表述匹配18个数字,$表示匹配行结束。
            var Idcard = $("#txtIdcard").val();
            if (/(^\d{18}$)|(^\d{15}$)/.test(Idcard)) {
                alert("身份证号码验证成功");
            }
            else {
                alert("身份证号码验证失败");
            }
        }
        function checkDecimal() {
            //[0-9]+表示匹配一个或多个数字,\.表示匹配小数点,[0-9]{3}表示匹配2个数字
            var Decimal = $("#txtDecimal").val();
            if (/^[0-9]+\.[0-9]{2}$/.test(Decimal)) {
                alert("两位小数验证成功");
            } else {
                alert("两位小数验证失败");
            }
        }
        function checkMonth() {
            //0?表示匹配0个或1个“0”,[1-9]表示匹配数字1-9,1[0-2]表示匹配数字10,11,12。
            var Month = $("#txtMonth").val();
            if (/^(0?[1-9]|1[0-2])$/.test(Month)) {
                alert("一年的12个月份验证成功");
            }
            else {
                alert("一年的12个月份验证失败");
            }
        }
        function checkDay() {
            //0?表示匹配0个或1个“0”,[1-9]表示匹配数字1-9,(1|2)表示匹配数字1或2,|30|31表示匹配数字30,31。
            var Day = $("#txtDay").val();
            if (/^((0?[1-9])|((1|2)[0-9])|30|31)$/.test(Day)) {
                alert("一个月的31天验证成功");
            }
            else {
                alert("一个月的31天验证失败");
            }
        }
        function checkNumber() {
            //[0-9]*表示匹配0个至多个数字。
            var Number = $("#txtNumber").val();
            if (/^[0-9]*$/.test(Number)) {
                alert("数字输入验证成功");
            }
            else {
                alert("数字输入验证失败");
            }
        }
        function checkLength() {
            //\d{6-8}表示匹配6-8个数字。
            var Length1 = $("#txtLength").val();
            if (/^\d{6,8}$/.test(Length1)) {
                alert("密码长度验证成功");
            }
            else {
                alert("密码长度验证失败");
            }
        }
        function checkMaxnumber() {
            //\+?表示匹配零个或一个正号+,[0-9]*表示匹配零个或多个数字。
            var Maxtnumber = $("#txtMaxtnumber").val();
            if (/^\+?[1-9][0-9]*$/.test(Maxtnumber)) {
                alert("非零的正整数验证成功");
            } else {
                alert("非零的正整数验证失败");
            }
        }
        function checkMinnumber() {
            //\-表示匹配零个或一个符号,[0-9]*表示匹配零个或多个数字。
            var Minnumber = $("#txtMintnumber").val();
            if (/^\-[1-9][0-9]*$/.test(Minnumber)) {
                alert("非零的负整数验证成功");
            }
            else {
                alert("非零的负整数验证失败");
            }
        }
        function checkUpchar() {
            //[A-Z]+表示匹配一个或多个大写字母
            var Upchar = $("#txtUpchar").val();
            if (/^[A-Z]+$/.test(Upchar)) {
                alert("大写字母验证成功");
            }
            else {
                alert("大写字母验证失败");
            }
        }
        function checkLower() {
            //[a-z]+表示匹配一个或多个小写字母
            var Lower = $("#txtLowerchar").val();
            if (/^[a-z]+$/.test(Lower)) {
                alert("小写字母验证成功")
            }
            else {
                alert("小写字母验证失败");
            }
        }
        function checkLetter() {
            //[A-Za-z]+表示匹配一个或多个大写或小写的字母。
            var Letter = $("#txtLetter").val();
            if (/^[A-Za-z]+$/.test(Letter)) {
                alert("输入字母验证成功");
            }
            else {
                alert("输入字母验证失败");
            }
        }
        function checkChinese() {
            //[\u4e00-\u9fa5]{1,}表示匹配一个或多个汉字。
            var Chinese = $("#txtChinese").val();
            if (/^[\u4e00-\u9fa5]{1,}$/.test(Chinese)) {
                alert("输入中文汉字验证成功");
            }
            else {
                alert("输入中文汉字验证失败");
            }
        }
        function checkChar() {
            //.{8,}表示匹配除换行符以外的8个或8个以上的字符。
            var Char = $("#txtChar").val();
            if (/^.{8,}$/.test(Char)) {
                alert("输入字符串验证成功");
            } else {
                alert("输入字符串验证失败");
            }
        }
        function checkEmail() {
            var Email = $("#txtEmail").val();
            if (/^(([\w\.]+)@(([[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))|((\w+\.?)+)@([a-zA-Z]{2,4}|[0-9]{1,3})(\.[a-zA-Z]{2,4}))$/.test(Email)) {
                alert("Email验证成功");
            }
            else {
                alert("Email验证失败");
            }
        }
        function checkIP() {
            var IP = $("#txtIP").val();
            if (/25[0-5]|2[0-4]\d|[0-1]\d{2}|{1-9}?\d/.test(IP)) {
                alert("IP验证成功");
            }
            else {
                alert("IP验证失败");
            }
        }
function checkUserName() {
            //限制用户名是字母、数字和下划线的正则表达式:^\w+$
            var Name = $("#txtUserName").val();
            if (/^\w+$/.test(Name)) {
                alert("用户名验证成功");
            }
            else {
                alert("用户名验证失败");
            }
        }
    </script>
</head>
<body>
    <input type="text" id="txtPhone"/> <input type="button" value="验证电话号码" onclick="checkPhone();"/><br /><br />
    <input type="text" id="txtPostcode"/> <input type="button"  value="验证邮政编码" onclick="checkPostcode();"/><br /><br />
    <input type="text" id="txtPassword"/> <input type="button" value="验证输入密码条件" onclick="checkPassword();"/><br /><br />
    <input type="text" id="txtHandset"/> <input type="button" value="验证手机号码" onclick="checkHandset();"/><br /><br />
    <input type="text" id="txtIdcard"/> <input type="button" value="验证身份证号码" onclick="checkIdcard();"/><br /><br />
    <input type="text" id="txtDecimal"/> <input type="button" value="验证两位小数" onclick="checkDecimal();"/><br /><br />
    <input type="text" id="txtMonth" /> <input type="button" value="验证一年的12个月份" onclick="checkMonth();" /><br /><br />
    <input type="text" id="txtDay" /> <input type="button" value="验证一个月的31天" onclick="checkDay();" /><br /><br />
    <input type="text" id="txtNumber" /> <input type="button" value="验证数字输入" onclick="checkNumber();" /><br /><br />
    <input type="text" id="txtLength" /> <input type="button" value="验证密码长度" onclick="checkLength();" /><br /><br />
    <input type="text" id="txtMaxtnumber"/> <input type="button" value="验证非零的正整数" onclick="checkMaxnumber();" /><br /><br />
    <input type="text" id="txtMintnumber" /> <input type="button" value="验证非零的负整数" onclick="checkMinnumber();" /><br /><br />
    <input type="text" id="txtUpchar" /> <input type="button" value="验证大写字母" onclick="checkUpchar();" /><br /><br />
    <input type="text" id="txtLowerchar" /> <input type="button" value="验证小写字母" onclick="checkLower();" /><br /><br />
    <input type="text" id="txtLetter" /> <input type="button" value="验证输入字母" onclick="checkLetter();" /><br /><br />
    <input type="text" id="txtChinese" /> <input type="button" value="验证中文汉字输入" onclick="checkChinese();" /><br /><br />
    <input type="text" id="txtChar" /> <input type="button" value="验证输入字符串" onclick="checkChar();" /><br /><br />
    <input type="text" id="txtEmail" /> <input type="button" value="验证E-mail格式" onclick="checkEmail();" /><br /><br />
    <input type="text" id="txtIP" /> <input type="button" value="验证IP地址" onclick="checkIP();" /><br /><br />
    <input type="text" id="txtUserName" /> <input type="button" value="限制用户名是字母、数字和下划线" onclick="checkUserName();" /><br /><br />
    //验证出生日期:\d{4}-\d{2}-\d{2},出生日期的格式必须为:xxxx-xx-xx
    //验证出国护照:(P\d{7})|(G\d{8}),护照号码的格式有2中:P12345**(7位数字)或G123456**(8位数字)
</body>

 

以上是关于正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

markdown 正则表达式模式片段

正则表达式匹配特定的 URL 片段而不是所有其他 URL 可能性

循环通过 python 正则表达式匹配

asp.net 使用正则表达式验证包含打开/关闭括号片段的属性字符串

攻破难啃的骨头-正则表达式(转)

正则表达式的贪婪和非贪婪模式