javaScript 通配符求教啊 求高手

JavaScript032

javaScript 通配符求教啊 求高手,第1张

javaScript 通配符

<script type="text/javascript">

function validate(){

var reg = new RegExp("^[0-9]*$")

var obj = document.getElementById("name")

if(!reg.test(obj.value)){

alert("请输入数字!")

}

if(!/^[0-9]*$/.test(obj.value)){

alert("请输入数字!")

}

}

</script>

验证数字的正则表达式集

验证数字:^[0-9]*$

验证n位的数字:^\d{n}$

验证至少n位数字:^\d{n,}$

验证m-n位的数字:^\d{m,n}$

验证零和非零开头的数字:^(0|[1-9][0-9]*)$

验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$

验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$

验证非零的正整数:^\+?[1-9][0-9]*$

验证非零的负整数:^\-[1-9][0-9]*$

验证非负整数(正整数 + 0) ^\d+$

验证非正整数(负整数 + 0) ^((-\d+)|(0+))$

验证长度为3的字符:^.{3}$

验证由26个英文字母组成的字符串:^[A-Za-z]+$

验证由26个大写英文字母组成的字符串:^[A-Z]+$

验证由26个小写英文字母组成的字符串:^[a-z]+$

验证由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$

验证由数字、26个英文字母或者下划线组成的字符串:^\w+$

验证用户密码:^[a-zA-Z]\w{5,17}$ 正确格式为:以字母开头,长度在6-18之间,只能包含字符、数字和下划线。

验证是否含有 ^%&',=?$\" 等字符:[^%&',=?$\x22]+

验证汉字:^[\u4e00-\u9fa5],{0,}$

验证Email地址:^\w+[-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$

验证InternetURL:^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ ;^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$

验证电话号码:^(\(\d{3,4}\)|\d{3,4}-)?\d{7,8}$:--正确格式为:XXXX-XXXXXXX,XXXX-XXXXXXXX,XXX-XXXXXXX,XXX-XXXXXXXX,XXXXXXX,XXXXXXXX。

验证身份证号(15位或18位数字):^\d{15}|\d{}18$

验证一年的12个月:^(0?[1-9]|1[0-2])$ 正确格式为:“01”-“09”和“1”“12”

验证一个月的31天:^((0?[1-9])|((1|2)[0-9])|30|31)$ 正确格式为:01、09和1、31。

整数:^-?\d+$

非负浮点数(正浮点数 + 0):^\d+(\.\d+)?$

正浮点数 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$

非正浮点数(负浮点数 + 0) ^((-\d+(\.\d+)?)|(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+)?$

一. 正则表达式

正则表达式:其实就是一种匹配规则,用于检索字符串

定义正则表达式的两种方式:1.直接定义 2.构造函数定义

那么正则表达式正则强大的地方是它可以写 通配符(拥有特殊含义的字符)

二. 通配符

\w 表示:字母、数字、下划线

\W 表示:除了字母、数字、下划线以外的字符

\d 表示:数字

\D 表示:非数字

^ 表示:以^符号后面的第一个字符开头

表示:以表示:以符号前面的第一个字符结尾

{n} 表示:重复n次

{n,m} 表示:重复n到m次

[xyz] 表示:其中任意一个字符

+ 表示:重复前一项1次或多次 等价于 {1,}

* 表示:重复前一项0次或多次 等价于 {0,}

? 表示:重复前一项0次或1次 等价于 {0,1}

. 表示:除了换行符以外的任意一个字符

\. 表示:.字符 ^ 表示:^ \表示:表示:

可以用()将多个字符作为一个整体

\w 等价于 [0-9a-zA-Z_]

| 表示:或者

[\u4E00-\u9FA5] 是常用汉字的unicode编码范围

三. 正则练习

四. 正则表达式配合字符串的方法

replace()方法

默认情况下,replace()方法,只会替换字符串中匹配的第一段内容

使用正则表达式,添加全局匹配修饰符g,可以替换匹配全部内容

使用正则表达式,添加忽略大小写修饰符i,在匹配内容时会忽略大小写

search()方法

可以通过正则表达式查找位置

五. 添加学生练习

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>添加学生</title>

    <style>

        .err{

            color: red

        }

        .ok{

            color: green

        }

    </style>

</head>

<body>

    <form>

        <table>

            <tr>

                <td>姓名:</td>

                <td>

                    <input type="text" id="name">

                    <span id="nameMsg"></span>

                </td>

            </tr>

            <tr>

                <td>年龄:</td>

                <td>

                    <input type="text" id="age">

                    <span id="ageMsg"></span>

                </td>

            </tr>

            <tr>

                <td>性别:</td>

                <td>

                    <input checked name="sex" type="radio" value="0">男

                    <input name="sex" type="radio" value="1">女

                </td>

            </tr>

            <tr>

                <td>爱好:</td>

                <td>

                    <input name="hobby" type="checkbox" value="抽烟">抽烟

                    <input name="hobby" type="checkbox" value="喝酒">喝酒

                    <input name="hobby" type="checkbox" value="烫头">烫头

                    <input name="hobby" type="checkbox" value="睡觉">睡觉

                </td>

            </tr>

            <tr>

                <td>年级:</td>

                <td>

                    <select id="grade">

                        <option value="0">请选择</option>

                        <option value="1">大一</option>

                        <option value="2">大二</option>

                        <option value="3">大三</option>

                        <option value="4">大四</option>

                    </select>

                    <span id="gradeMsg">必须要选择一个年级</span>

                </td>

            </tr>

            <tr>

                <td>邮箱:</td>

                <td>

                    <input type="text" id="email">

                    <span id="emailMsg">请输入正确的邮箱格式</span>

                </td>

            </tr>

            <tr>

                <td>电话:</td>

                <td>

                    <input type="text" id="phone">

                    <span id="phoneMsg">请输入正确的电话格式</span>

                </td>

            </tr>

            <tr>

                <td>生日:</td>

                <td>

                    <input type="text" id="bornDate">

                    <span id="bornDateMsg">请输入正确日期格式</span>

                </td>

            </tr>

            <tr>

                <td></td>

                <td>

                    <button type="submit">提交</button>

                    <button type="reset">重置</button>

                </td>

            </tr>

        </table>

    </form>

    <script>

        //获取姓名文本框

        let name = document.querySelector('#name')

        //获取年龄文本框

        let age = document.querySelector('#age')

        //表单的提交事件

        document.querySelector('form').onsubmit = function(){

            // 返回true提交表单,返回false不提交表单

            if(checkName() &checkAge()){

                return true

            }else{

                return false

            }

        }

        //姓名文本框失去焦点

        name.onblur = checkName

        //验证姓名

        function checkName(){

            //定义验证姓名的正则

            let reg = /^[\u4E00-\u9FA5]{2,4}$/

            // 调用验证方法

            return checkInput("#nameMsg",name,reg,'姓名正确','姓名必须是2-4位汉字')

        }

        //年龄文本框失去焦点

        age.onblur = checkAge

        //验证年龄

        function checkAge(){

            //定义验证年龄的正则

            let reg = /^\d{1,2}$|^1([0-1]\d)|20$/

            // 调用验证方法

            return checkInput("#ageMsg",age,reg,'年龄正确','年龄必须是0-120之间')

        }

        //验证方法,参数分别是:span元素Id,表单元素对象,正则规则,验证成功消息,验证失败消息

        function checkInput(spanId,_this,reg,okMsg,errMsg){

            // 获取消息span

            let span = document.querySelector(spanId)

            //获取信息

            let val = _this.value

            if(!reg.test(val)){

                span.className="err"

                span.innerHTML = errMsg

                return false  //验证失败返回false

            }else{

                span.className="ok"

                span.innerHTML = okMsg

                return true  //验证成功返回true

            }

        }

    </script>

</body>

</html>