正则表达式是用于匹配字符串组合的模式,在js中,正则表达式也是对象是,通常用于查找、替换那些符合正则表达式的文本。
作用:表单验证(匹配)、过滤敏感词(替换)、字符串中提取我们想要的部分(提取)
语法:const 变量名=/表达式/ //就是正则表达式的字面量
变量名.test(str) 判断变量名是否在str里
输入如下代码:
<script>
const str = '好好学习,天天向上'
const reg = /学习/
console.log(reg.test(str))
</script>
输出结果:控制台打印true
正则可以配合元字符和边界符进行书写
元字符:一些具有特殊含义的字符,比如普通字符a-z是abcdefgh······,换成元字符写法:[a-z]
边界符:表示位置,开头和结尾,必须用什么开头,什么结尾
边界符 说明
^ 表示匹配行首的文本(以谁开始)
$ 表示匹配行尾的文本(以谁结束)
量词:表示重复次数
量词 说明
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次数
执行以下代码:
<script>
console.log(/^哈$/.test('哈')) //^与$同时出现表示精确匹配,只能出现'哈',结果为true
console.log(/^哈哈$/.test('哈哈哈哈')) //^与$同时出现表示精确匹配,只能出现'哈哈',但'哈哈哈哈'出现了两次,结果为false
console.log(/^哈*$/.test('哈哈')) //检测'哈哈'中是否出现了0次以上的'哈',结果为true
console.log(/^哈/.test('二哈')) //检测'二哈'是否以'哈'开头,结果为false
console.log(/$哈/.test('哈嘿')) //检测'哈嘿'是否以'哈'结尾,结果为false
console.log(/^[a-z]{2}$/.test('abcd')) //检测'aack'是否出现了两次a-z之间的字母,结果为false
console.log(/^[a-z]{2,}$/.test('abcd')) //检测'abcd'是否出现了两次或两次以上a-z之间的字母,结果为true
console.log(/^[a-z]{2,5}$/.test('abcd')) //检测'abcd'是否出现了两次到五次a-z之间的字母,结果为true
</script>
代码执行结果如注释所示。