js 正则表达式 第一个字符为0后面的字符任意或者全部不为数字的字符串 完整的表达式

JavaScript015

js 正则表达式 第一个字符为0后面的字符任意或者全部不为数字的字符串 完整的表达式,第1张

<script type="text/javascript">

function o(id)

{

return document.getElementById(id)

}

function check()

{

var pattern1 = /^0.*/g

var text1 = o("zeroBegin").value

if("" != text1)

{

var isZeroBegin = pattern1.test(text1)

if(isZeroBegin)

{

alert("第一个框ok!")

}

else

{

alert("第一个框填写错误,必须第一个字符为0后面的字符任意!")

}

}

var pattern2 = /^0(\D*)$/g

var text2 = o("zeroBeginWithNoNum").value

if("" != text2)

{

var isZeroBeginWithNoNum = pattern2.test(text2)

if(isZeroBeginWithNoNum)

{

alert("第二个框ok!")

}

else

{

alert("第二个框填写错误,必须第一个字符为0后面的字符全部不为数字!")

}

}

}

</script>

<input type="text" id="zeroBegin" /> 第一个字符为0后面的字符任意<br/>

<input type="text" id="zeroBeginWithNoNum" /> 第一个字符为0后面的字符全部不为数字<br/>

<br/>

<input type="button" value="检测" onclick="check()"/>

一. 正则表达式

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

定义正则表达式的两种方式: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>

不要用贪婪模式,即不加/g开关;

如果框架有提供类似searchAll跟search的方法,选用search;

满足前两项后,从全文的最开始处进行检索,通常而言,第一次检索就只会取到第一个结果

还有一种就是取多个group,然后拿第一个group的内容作为结果