一、正则表达式
正则表达式用于定义一些字符串的规则。
正则表达式书写规则:
- |,[] 表示或 a|b|c= [abc]= a或b或c
- - [a-z] 表示所有小写 [A-z]表示所有字母
- [^ab] 表示除了ab以外的
- 量词设置 {n} 前面的字符正好出现n次 /(ab){3}/ =ab出现3次
- 量词设置 {a,b}前面的字符出现a到b次
- + 即》=1 * 即0-n ?即0或1
- ^表示开头 /^a/ 以a开头
- $ 表示结尾 /b$/ 以b结尾
1.创建正则表达式的对象
1. 构造函数创建正则表达式的对象 优点:灵活
语法: var 变量 = new RegExp(“正则表达式”,“匹配模式”);
- 正则表达式可以用来检查一个字符串是否含有该正则表达式内的内容;
- 可以传递第二参数:匹配模式,可以是i 忽略大小写 g 全局匹配
var reg = new RegExp("ab","i");
console.log(typeof reg);
//reg.test("待测字符串") 检查一个字符串是否符合正则表达式的规则。
//如果符合返回true,否则false。
console.log(reg.test("aaBbb"));
输出:
object
true
2. 字面量创建正则表达式的对象 优点:简单
语法: var 变量 = /正则表达式/匹配模式 ;
var reg = /bc/i;
console.log(reg.test("aaBbbc"));
输出:
true
2.正则表达式的方法
reg.test(“待测字符串”) 检查一个字符串是否符合正则表达式的规则。如果符合返回true,否则false。
- str.split()
- 可以将一个字符串拆分为一个数组,可以传递一个正则表达式,split方法根据正则表达式内容拆分字符串。
- 自动开启全局拆分
- str.search()
- 搜索字符串中是否含有指定内容。
- 只会查找第一个,即使开启全局也没用。
- str.match()
- 可以根据正则表达式,从一个字符串中将符合条件的内容提取出来
- 默认情况,match只找到第一个符合要求的内容即停止检索;可以设置正则表达式为全局模式g,匹配所有的内容。
- 可以为一个正则表达式设置多个匹配模式,顺序无所谓。
- 会将匹配的结果封装在一个数组中返回,即使只有查询一个结果。
var str = "a1b2n3B4n5";
var res = str.match(/[a-z]/gi);
console.log(res);
console.log(typeof res);
console.log(Array.isArray(res));
输出:
[ 'a', 'b', 'n', 'B', 'n' ]
object
true
- str.replace()
- 可以将字符串中指定内容置换为新的内容,指定内容可以是一个正则表达式。
- 参数:1.被替换的内容(正则表达式) 2.用来替换的新的内容。
str = "abA";
res = str.replace(/a/gi,"???");
console.log(res);
console.log(Array.isArray(res));
输出:
???b???
false