js的正则表达式

家住魔仙堡 提交于 2019-12-06 06:44:25

1、正则定义

正则表达式:js中用来匹配判定字符串是否合法的工具

有两种定义方式:

  • 1直接用//定义:var reg1 = /[0-9a-zA-Z]/i;
  • 2用RegExp方式定义:var reg2 = new RegExp('[0-9a-zA-z]', 'i');

其中[0-9a-zA-Z]为字符串匹配规则,i为修饰符。

2、正则符号

  • ^:以...开头 ^\d:以数字开头
  • $:以...结尾 \d$:以数字结尾
  • ?:表示匹配0个或1个
  • +:表示匹配至少1个
  • *:表示匹配任意个
  • {x}:表示匹配x个
  • {x,y}:表示匹配x到y个,最少x个,最多y个
  • {x,}:表示匹配至少x个起

3、匹配规则

  • [0-9]:查找0~9之间的数字
  • [0-9a-z]:查找0-9或a-z之间的字符
  • .:表示匹配任何一个字符(包括0)
  • \d:表示匹配数字
  • \w:匹配一个字母或数字
  • i,g,m:修饰符,i:忽视大小写,g:全局匹配,m:多行匹配

4、正则可用于那些方法

  • test():Reg.test(String),返回true或false表示是否匹配
  • match():String.match(Reg),返回一个或多个匹配的字符串
  • split(Reg):String.split(Reg),消除匹配的分割符
  • replace():String.replace(Reg,'newString'),替换匹配到的字符串
  • search():String.search(Reg)返回匹配到的字符串的下标

5、对手机号码的匹配

例子代码:

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>test2</title>
</head>

<body>
    <p id="p" style="color:red;"></p>
    <input id="phone" type="text" name="phone" value='' placeholder="请输入手机号!">
    <input id="btn" type="submit" value="点击"></input>
    <script>
        window.onload = function() {
            var btn = document.getElementById('btn');
            var p = document.getElementById('p');
            var reg = /^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\d{8}$/;
            btn.onclick = function() {
                var phone = document.getElementById('phone').value;
                if (reg.test(phone)) {
                    p.innerHTML = '该手机号正确!';
                } else {
                    p.innerHTML = '该手机号错误!';
                }
            }
        }
    </script>
</body>

</html>
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!