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>