什么是正则表达式:正则表达式从数据类型来讲是一个对象。不能操作DOM的
作用:配合API来验证字符串(.test(),.match())等;
.test()的用法:正则表达式.test(参数);返回的是Boolean
.match()的用法:字符串.match(正则表达式);返回的是数组
怎么定义正则表达式呢?有两种方法:
- test()
let s = "456你好789";
let a = /\d+/g;
console.log(a.test(s));//打印的是true
- RegExp()
let y = "你好";
let x = new RegExp(y);
console.log(x.test("456你好789"));//打印的是true
正则表达式转义符号的运用
- 转义符号转义有特殊意义的符号会变得没有意义(/);
let s = "/";
let a = /\//;
console.log(a.test(s));//true
- 转义符号转义没有字母会变得有意义
a. \d(匹配数字),\D(匹配非数字)
let s = "4";
let a = /\d/;
console.log(a.test(s));//true
let x = "4";
let y = /\D/;
console.log(y.test(x));//false
b. \s(匹配空格),\S(非空格)
let s = " ";
let a = /\s/;
console.log(a.test(s));//true
let x = " ";
let y = /\S/;
console.log(y.test(x)); //false
c. \w(匹配数字,字母,下划线),\W(非数字,字母,下划线)
let s = "4";
let a = /\w/;
console.log(a.test(s));//true
let x = "_a";
let y = /\W/;
console.log(y.test(x));//false
d. \b(匹配连字符)汉字没用
let s = "I am afei";
let a = /\bafei\b/;
console.log(a.test(s));//true
let x = "I am afeif";
let y = /\bafei\b/;
console.log(y.test(x));//false
正则表达式字符集的作用**[]**
let s = "abcgwgwagcasg";
let a = /[abc]/g;//在全局里找abc
console.log(s.match(a));//(6) ["a", "b", "c", "a", "c", "a"]
正则表达式或者的作用**|**
let s = "fwegwgsa";
let a = /e|w|f/g;
console.log(s.match(a))//(4) ["f", "w", "e", "w"]
字符集里的区间**-**
let s = "gehe4613GEd78GSEv";
let a = /[a-zA-Z]/g;//匹配所有的字母
console.log(s.match(a))//(11) ["g", "e", "h", "e", "G", "E", "d", "G", "S", "E", "v"]
字符集里的**^**的作用
let s = "gwgyhwagaghvahchhb";
let a = /[^abc]/g;//除了abc之外全都匹配
console.log(s.match(a));//(13) ["g", "w", "g", "y", "h", "w", "g", "g", "h", "v", "h", "h", "h"]
起始位置的符号^和结束位置的符号$的作用
let s = "abcg";
let a = /^abc/g;//以a为开始
console.log(s.match(a));//["abc"]
let s = "abc";
let a = /abc$/g;//以c为结束的
console.log(s.match(a));//["abc"]
let s = "agabccgc";
let a = /^abc$/g;//这里只能匹配abc
console.log(s.match(a));//null
**.**在正则表达式里的作用:匹配任意字符,除了换行之外;放在[.]里就是单纯的点
let s = "58gs\ng\t";
let reg = /./g;
console.log(s.match(reg));//(6) ["5", "8", "g", "s", "g", " "]
replace();替换内容。用法:str.replace(正则,参数[要替换的内容,可以写字符串和函数])
let reg = /你好/g;
let str = "世界真的很大,遇见你真的很幸运,初次见面,你好请多多指教";
let strReg = str.replace(reg,"hello");
console.log(strReg);//世界真的很大,遇见你真的很幸运,初次见面,hello请多多指教