文章目录
前言
在前端中学习正则表达式是非常有必要的,在实际开发中会经常使用正则表达式。
正则表达式:(Regular Expression)用于匹配规律规则的表达式,正则表达式最初是科学家对人类神经系统的工作原理的早期研究,现在在编程语言中有广泛的应用。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。
一、正则表达式
正则表达式的作用:
1.给定的字符串是否符合正则表达式的过滤逻辑(匹配)
2.可以通过正则表达式,从字符串中获取我们想要的特定部分(提取)
3.强大的字符串替换能力(替换)
正则表达式语法
可以通过两种方式创建正则表达式:
(1)通过字面量的方式创建正则表达式 /abc/
(2)通过构造函数创建正则表达式 new RegExp(“abc”)
注意:通常使用字面量的方式创建正则表达式
接下来通过代码来体会创建正则表达式
<script>
//字面量创建正则表达式
var reg = /abc/;
//构造函数创建正则表达式
var reg1 = new RegExp("abc");
</script>
二、相关正则方法
1.字符串方法
(1)split:根据匹配的字符串分割父字符串
(2)search:使用正则表达式搜索字符串所在位置,并返回下标。
(3)match:使用正则表达式跟字符串作比较,返回一个包含匹配结果的数组。
(4)replace:使用正则表达式替换字符串,返回替换后的整个字符串。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
//splice 方法: 分隔所匹配的指定字符串
var str = "aa bbb c dd eeeeee";
var arr = str.split(/\s+/);
console.log(arr);
var str1 = "bbaacaaaadddaeeeeeaaf";
var arr1 = str1.split(/a+/);
console.log(arr1);
//search 方法: 根据正则表达式找到字符串,并返回下标位置
var str = "abcdefg";
var a = str.search("cd");
var b = str.search(/cdf/);
console.log(a);
console.log(b);
//match 方法: 根据正则表达式匹配字符,返回一个包含匹配字符的数组
var str = "abbcccbbbbbddbbbdabbb";
var arr = str.match(/b+/);
console.log(arr);
var arr1 = str.match(/b+/g);
console.log(arr1);
var str1 = "aaaa o o bbb o o aaa";
var arr2 = str1.match(/o\s+o/g);
console.log(arr2);
//replace 方法: 根据正则替换字符
var str = "www.baidu.com";
var str1 = str.replace(/baidu/,"hello");
console.log(str1);
</script>
</body>
</html>
2.正则方法
(1)exec:在目标字符串中执行一次
(2)test:测试当前正则是否能匹配目标字符串
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
//exec 方法:返回目标字符串第一次出现的位置
//无论有没有全局修饰符,都只会找到第一次出现的位置
var str = /abc/;
console.log(str.exec("aaaabccccbacabc"));
//test 方法: 返回是否包含在字符串内,包含返回true ,不包含返回false
console.log(str.test("aaaabccccbacabc"));
</script>