正则表达式概述
- 正则表达式(Regular Expression),是由一些普通字符和特殊字符组成的,用以描述一种特定的字符规则。
- 正则表达式常用于在一段文本中搜索,匹配或替换特定形式的文本。如:词语出现频率统计、验证字符串是否符合邮箱格式,屏蔽一篇帖子中的限制性词语等。
正则表达式的特点是:
1. 灵活性、逻辑性和功能性非常强;
2. 可以迅速地用极简单的方式达到字符串的复杂控制。
3. 对于刚接触的人来说,比较晦涩难懂。
给定一个正则表达式和另一个字符串,我们可以达到如下的目的:
1. 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”):
2. 可以通过正则表达式,从字符串中获取我们想要的特定部分。
var regexp = /^1[3-9]\\d{9}$/;var input = \'15810204882\';console.log(regexp.test(input));
直接量字符
定义一个正则表达式语法
/pattern/attributes
说明:
- 直接量字符串左右不能添加’ 或者“。
- 两个/不能省略;
- 参数pattern是一个正则表达式字符串;
- 参数attributes是一个可选的字符串,可以在g,i和m范围内指定,分别用于指定全局匹配,不区分大小写的匹配和多行匹配。
字符类
- 所有的单个大小写字母,数字都是一个正则表达式,用以匹配单个字符,这个字符与它本身相同
var regexp = /ipod/;var data = \'Apple Ipod is cool\';console.log(regexp.test(data));
- 正则表达式中有些字符有特殊的语法含义,是不能直接使用的,必须使用\\进行转移后才能使用
. \\ / * ? + [ ( ) ] { } ^ $ |
重复
- 正则表达式中可以使用如下特殊字符定义字符的出现频次——量词元字符
选择,分组和引用
- 正则表达式使用如下语法匹配一个范围内的字符
元字符
- 元字符是拥有特殊含义的字符,正则表达式中使用元字符引用来进行简化
指定匹配位置
- 可以使用如下字符进行指定位置的匹配
修饰符
- 正则表达式中可以使用如下三个属性修饰符
RegExp对象
创建正则表达式对象有两种方法:
var patt1 = /pattern/attributes;
调用RegExp构造方法:
var patt2 = new RegExp(pattern,attributes);
var regexp1 = /\\d{2,3}/ig;var regexp2 = new RegExp(\"\\d{2,3}\",\"ig\");
RegExp的属性
RegExp的方法
正则表达式常见例子
判断邮箱的格式
第一种:
<!-- 邮箱正则表达式 -->请输入您的邮箱地址:<input type=\"text\" name=\"text\" id=\"t\"><button onclick=\"queding()\">确定</button><script>function queding(){var ema = document.getElementById(\"t\").value;var email = /^[A-z0-9]\\w{5,20}]+@[0-9A-z]\\.[A-z]{2,4})$/if(email.test(ema)){return true}else{return false}}
第二种:
<!-- 邮箱正则表达式 -->请输入您的邮箱地址:<input type=\"text\" name=\"text\" id=\"t\"><button onclick=\"q()\">确定</button><script>function q(){var ema = document.getElementById(\"t\").value;console.log(ema)var em = /\\w+[@]\\d+(.[a-z]+)/;console.log(em.test(ema))}</script>
过滤敏感词
请输入一句话:<input type=\"text\" name=\"\" id=\"str\"><button onclick=\"ok()\">ok</button><script>function ok(){var new_str = document.getElementById(\"str\").valuevar reg = /lili|lala|huhu|huahua/g ;//改成其他敏感词即可console.log(new_str)new_str1 = new_str.replace(reg,\'*\')console.log(new_str1)}document.write(\"<br>\")
验证身份证号
请输入你的身份证号: <input type=\"text\" id=\'num\'><button onclick=\"okk()\">okk</button><script>function okk(){var new_num = document.getElementById(\"num\").value;var reg = /^[1-8][0-9]{5}([18|19|20]+[0-9]{2})(0?[1-9]|1[0-2])\\d{2}([0-9]{3})([0-9]|X)$/console.log(new_num)console.log(reg.test(new_num))}
验证ip地址
请输入你的ip地址:<input type=\"text\" name=\"\" id=\"add\"><button onclick=\"okkk()\">okkk</button><script>function okkk(){var ipp = document.getElementById(\"add\").valuevar reg = /^((25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/console.log(ipp)console.log(reg.test(ipp))}