正则表达式概述
正则表达式概述
什么是正则表达式
**正则表达式(Regular Expression)**是用于匹配字符串中字符串组合的模式。在 JavaScript 中,正则表达式也是对象
通常用来检索,替换哪些某个模式(规则)的文本,例如验证表单:用户名表单只输入英文字母,数字或者下划线,昵称输入框可以输入中文(匹配),此外,正则表达式还常用于过滤掉页面内容中的一些敏感词(替换),或从字符串中获取我们想要的特定部分(提取)等
其它语言也会使用正则表达式,本阶段主要利用 JavaScript 正则表达式完成表单验证
正则表达式特点
- 灵活性,逻辑性和功能性非常的强
- 可以迅速地用及其简单的方式达到字符串的控制复杂
- 对于刚接触的人来说,比较晦涩难懂
- 实际开发,一般都是直接复制写好的正则表达式,但是要求会使用用正则表达式并且根据实际情况修改正则表达式
创建正则表达式
在 JavaScript中,可以通过两种方式创建一个正则表达式
- 通过调用 RegExp 对象的构造函数创建
测试正则表达式
test() 正则对象方法,用于检测字符串是否符合该规则,该对象会返回布尔值,其参数是测试字字符串
regexObj.test(str);
- regexObj 是写的正则表达式
- str 是要测试的文本
- 就是测试 str 文本是否符合我们写的正则表达式规范
正则表达式的组成
一个正则表达式可以有简单的字符构成,比如/abc/
也可以是间的和特殊字符的组合,比如/ab*c/,其中特殊字符也被称为元字符在正则表达式中具有特殊意义的专用符号,如 ^,$,+ 等
正则表达式里面不需要加引号 不管是数字型还是字符串型
边界符
正则表达式中的边界符(位置符)用来提示字符串所处的位置,主要有两个字符
- ^ 表示匹配行首的文本
- $ 表示匹配行尾的文本
如果是 ^ 和 $ 在一起,表示必须要精确匹配
字符类
字符类表示有一系列字符可供选择,只要匹配其中一个就可以了,所有可供选择的字符都放在方括号内
- [~] 括号内部 范围符
- [^] 括号内部 取反符
量词符
设定某个模式出现的次数
- *>= 0
- +>= 1
- ? 1 || 0
- {3 } =3
- {3, } >=3
- {3,16} >=3 && <=16
括号
- 花括号 {} 设定某个模式出现的次数
- 中括号 [] 所有可供选择的字符都放在方括号内
- 小括号 () 表示优先级
预定义类
值得是某些常见模式的简写模式
- \d = [0-9]
- \D = [^0-9]
- \w = [A-Za-z0-9_]
- \W = [^A-Za-z0-9_]
- \s = [\t\r\n\v\f] 匹配空格(包括换行符,制表符,空格符等)
- \S = [^\t\r\n\v\f] 匹配非空格的字符
正则替换
replace()方法可以实现替换字符串操作,用来替换的参数可以是一个字符串或是一个正则表达式
stringObject.replace(regexp/substr,replacement)
- 第一个参数:被替换的字符串或者正则表达式
- 第二个参数: 替换为的字符串
- 返回值是一个替换完毕的新字符串
正则表达式参数
/表达式/[switch]
switch(也称为修饰符)按照什么样的模式来匹配,有三种值:
- g:全局匹配
- i:忽略大熊安歇
- gi:全局匹配加忽略大小写