正则表达式
正则表达式
推荐两个内容比较好的学习正则的网站!
概念
-
对表单进行验证,制定规则判断表单是否合法。
-
敏感词替换,文本替换。
-
基于模式匹配从字符串中提取子字符串。
创建正则表达式
- 对象创建
var reg = new RegExp("abc")
这里创建了一个正则表达式,用来匹配'abc'
- 字面量创建
var rege1 = /abc/
注意
对象创建和字面量创建的不同
- 对象创建需要给字符串添加引号
- 字面量创建正则表达式不能只写两个//,需要往中间添加添加正则表达式。
测试正则表达式test
test( )正则对象方法,用于检测字符串中是否符合该规则,该对象会返回ture或false,其参数为测试字符串。
regexObj.test(str)
var rege1 = /abc/
console.log(rege1.test("123456")); //false
- regexObj是写的正则表达式
- str我们要测试的文本
- 就是检测str文本是否符合我们写的正则表达式规范。
元字符
边界符
符号 | 含义 |
---|---|
^ | 匹配输入字符串的开始位置 |
$ | 匹配输入字符串的结尾位置 |
字符类
- [ ]
表示可供选择的字符串,只需要匹配一个就可以。所有可供选择的字符都放到方括号里。
- [ - ]
表示范围
[0-9] 匹配数字0~9
- [^] 方括号内部,取反符
量词符
量词用来设定某个模式出现的次数。
量词 | 说明 |
---|---|
* | 重复零次或多次 |
+ | 重复一次或多次 |
? | 重复零次或一次 |
重复n次 | |
重复n次或者更多次 | |
重复n到m次 |
var reg5 = /^[a-z]+$/
console.log(reg5.test("")); //false
console.log(reg5.test("a")); //true
console.log(reg5.test("asdafsdfs")); //true
var reg5 = /^[a-z]*$/
console.log(reg5.test("")); //true
console.log(reg5.test("a")); //true
console.log(reg5.test("asdafsdfs")); //true
var reg5 = /^[a-z]?$/
console.log(reg5.test("")); //true
console.log(reg5.test("a")); //true
console.log(reg5.test("asdafsdfs")); //false
var reg6 = /^[a-z]{3}$/
console.log(reg6.test("a")); //false
console.log(reg6.test("ab")); //false
console.log(reg6.test("ayu")); //true
console.log(reg6.test("ayus")); //false
var reg7 = /^[a-z]{3,}$/
console.log(reg7.test("a")); //false
console.log(reg7.test("ab")); //false
console.log(reg7.test("ayu")); //true
console.log(reg7.test("ayus")); //ture
var reg8 = /^[a-zA-Z0-9_-]{6,12}$/
console.log(reg8.test("a")); //false
console.log(reg8.test("abAjlds")); //true
console.log(reg8.test("ayusklj123")); //true
console.log(reg8.test("ayusklj123$")); //false
预定义类
预定类 | 说明 |
---|---|
\d | 匹配0-9之间的任一数字,相当于[0-9] |
\D | 匹配所有0-9以外的字符,相当于[ ^0-9] |
\w | 匹配任意字母,数字,下划线,相当于[ A-Za-z0-9_] |
\s | 匹配空格(包括换行,制表符,空格符等),相当于[\t\r\n\v\f] |
\S | 匹配非空格的字符,相当于[ ^\t\r\n\v\f ] |
正则表达式参数
/表达式/[switch]
switch(也称为修饰符)按照什么样的模式来匹配,有三种值:
- g:全局匹配。
- i:忽略大小写。
- gi:全局匹配 + 忽略大小写
正则表达式的替换
replace替换
replace()方法可以实现替换字符串的操作,用来替换的参数可以是一个字符串或者是一个正则表达式。
stringObject.replace("替换的字符/正则表达式","字符串")
- 第一个参数:被替换的字符串或者正则表达式
- 第二个参数:替换的字符串
- 返回值是一个替换完毕的新字符串