一、正则表达式概述
1.1、什么是正则表达式.
正则表达式( Regular Expression )是用于匹配字符串中字符组合的模式。在JavaScript中,正则表达式也是对象。
正则表通常被用来检索、替换那些符合某个模式(规则)的文本,例如验证表单:用户名表单只能输入英文字母、数字或者下划线,昵称输入框中可以输入中文(匹配)。此外,正则表达式还常用于过滤掉页面内容中的一些敏感词(替换) ,或从字符串中获取我们想要的特定部分(提取)等。
其他语言也会使用正则表达式,本阶段主要是利用JavaScript正则表达式完成表单验证。
1.2、正则表达式的特点
1.灵活性、逻辑性和功能性非常的强。
2.可以迅速地用极简单的方式达到字符串的复杂控制。
3.对于刚接触的人来说,比较晦涩难懂。比如:
^\w+([- +.J\w+)*@\+(-]Ww+)I.W+(1-J\w+)*$
4.实际开发一般都是直接复制写好的正则表达式.但是要求会使用正则表达式并且根据实际情况修改正则表达式比如用户名:
/^[a z0-9 -]{3,16)$/
1.3、常用正则表达式
二、正则表达式在JavaScript中的使用
2.1、创建正则表达式
在JavaScript中,可以通过两种方式创建一个正则表达式。
1.通过调用RegExp对象的构造函数创建。
2.利用字面量创建
正则表达式里面不需要加引号不管是数字型还是字符串型
2.2、测试正则表达式test
test()正则对象方法,用于检测字符串是否符合该规则,该对象会返回true或false ,其参数是测试字符串。
1.regexobj 是写的正则表达式
2.str我们要测试的文本
3.就是检测str文本是否符合我们写的正则表达式规范.
三、正则表达式中的特殊字符
3.1、正则表达式的组成
一个正则表达式可以由简单的字符构成,比如/abc/ ,也可以是简单和特殊字符的组合,比如/ab*c/.中特殊字符也被称为元字符,在正则表达式中是具有特殊意义的专用符号,如 ^ 、$ 、 + 等。
特殊字符非常多,可以参考:
● MDN :
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Regular_ Expressions
● jQuery 手册:正则表达式部分。
● 正则测试工具: http://tool.oschina.net/regex
这里我们把元字符划分几类学习。
3.2、边界符
正则表达式中的边界符(位置符)用来提示字符所处的位置,主要有两个字符。
如果^和$在一起,表示必须是精确匹配。
3.3、字符类
字符类表示有一系列字符可供选择,只要四配其中一个就可以了。所有可供选择的字符都放在方括号内。
● [ ]表示有一系列字符可供选择,只要匹配其中一个就可以了
var rg = /[abc]/; //只要包含有a或者包含有b或者包含有c都返回为true
例:
● [ - ] 方括号内部范围符 -
例:
● 字符组合
例:
● []方括号内部取反符
如果中括号里面有 ^ 表示取反的意思千万和我们边界符 ^ 别混淆
例:
表示不能有大小写字母和数字
3.4、量词符
量词符用来设定某个模式出现的次数。
重复三次为true
大于等于三次为true
大于等于三小于等于六为true
{6, 16} 中间不要有空格
3.5、括号总结
1.大括号量词符,里面表示重复次數。
2.中括号字符集合。匹配方括号中的任意字符。
3.小括号表示优先级。
可以在线测试: https://c.runoob.com/
3.6、预定义类
预定义类指的是某些常见模式的简写方式。
正则里面的或者符号 |
四、正则表达式的替换
4.1、replace替换
replace()方法可以实现替换字符串操作,用来替换的参数可以是一个字符串或是一个正则表达式。
1.第一个参数:被替换的字符串或者正则表达式。
2.第二个参数:替换为的字符串。
3.返回值是一个替换完毕的新字符串。
4.2、正则表达式参数
switch(也称为修饰符)按照什么样的模式来匹配有三种值:
● g: 全局匹配。
● i: 忽略大小写。
● gi: 全局匹配+忽略大小写。