一、介绍
介绍:
正则表达式,常用于检索,替换,提取那些符合某些(模式)规则的字符串
JavaScript中定义正则表达式的语法有以下两种:
1、定义正则表达式语句
- let 变量名=/表达式/
- 其中/ /是正则表达式的字面量
2 、判断是否有符合规则的字符串
- test() 方法 用来查看正则表达式与指定的字符串是否匹配
- 语法- -- - regobj.test( 被检测的字符串)
- 如果正则表达式与指定的字符串匹配,返回true,否则false
<script>
const str='形参使用'
const reg= /形参/
console.log(reg.test(str)) //true
</script>
3 、检索(查找)符合规则的字符串
- exec( )方法 在一个指定字符串中执行一个搜索匹配
- 语法---- regobj.exec( 被检测得字符串)
- 如果匹配成功、exec( )方法返回一个数组,否则返回null
二、元字符
介绍:
是一些具有特殊含义的字符,可以极大提高了灵活性和强大的匹配功能。
比如,规定用户只能输入英文26个英文字母,普通字符的话 abcdefghijklm…..
但是换成元字符写法: [a-z]
1、边界符
表示位置,开头和结尾, 必须用什么开头,用什么结尾
- ^ 表示匹配行首的文本(以谁开始)
- $ 表示匹配行尾的文本(以谁结束)
- 如^ 和$在一起,表示必须是精准匹配
// 边界符 ^开头,$结尾
const str='当成是一个'
// const reg= /^当成/ //true
//const reg= /^当是/ //false
//const reg= /^当成是一个$/ //true
//const reg= /一个$/ //true
const reg= /是个$/ //false
2、字符类
2.1 [ ]匹配字符的集合
- [ ab] ----- 或的意思,指定字符中出现a 或b都为true
- [ ] 里面加上 - 连字符 ,表示一个区间范围 ,[a-zA-Z0-9] 表示字母大小写,数字0-9都可以
- [ ]里面加上 ^ ,为取反的意思,如 [ ^a-z]匹配除了小写字母以外的字符
2.1 .符号匹配,除换行符外的任何单个字符
console.log(/.{2,5}/.test('aaa'))
2.3 预定类- 某些常见模式的简写方式
- \d :匹配0-9之间的任一数字,相当于[0-9]
- \D :匹配0-9以外的字符,相当于[ ^ 0-9]
- \w :匹配任意的字母、数字、下划线,相当于[ a-zA-Z0-9 ]
- \W:匹配字母、数字、下划线以外的字符,相当于[ ^ a-zA-Z0-9 ]
- \s: 匹配空格(包括换行符、制表符、空格符),相当于[ \ t \r\n\v\f]
- \S :匹配非空格符的字符,相当于[ ^ \ t \r\n\v\f]
// . 匹配除换行符之外的任何单个字符
console.log(/./.test('我') )
// \d 匹配0-9之间的任一字符
console.log(/\d/.test('123吴') ) //true
// \D 匹配0-9之外的字符
console.log(/\D/.test('123') ) //false
console.log(/\D/.test('123吴') ) //true
// 匹配任意的字母、数字、下划线
console.log(/\w/.test('123吴') ) //true
console.log(/\w/.test('%%') ) //false
// 匹配任意的字母、数字、下划线 以外的字符
console.log(/\W/.test('%%12') ) //false
// 匹配空格(包括换行符、制表符、空格符等)
console.log(/\s/.test('22') ) //false
//匹配非空格(换行符、制表符、空格符等)字符
console.log(/\S/.test('22') ) //true