正则表达是的基础
1、正则表达式的介绍
正则表达式为Regular Expression
正则表达式是用来对字符串中的信息实现查找、替换和提取的操作。@H_502_7@
2、正则表达式的实践
【查找案例】
//查找所有的数字
var str = "1 dsd hhs67 89ud d 555 222 sshdsahd880 hhd88 99";
var res = str.match(/\d+/g);
console.log(res);
打印结果
(8) ["1","67","89","555","222","880","88","99"]
【替换案例】
//替换所有的is为IS
var str1 = "my name is abcd . is no what is you name?"
var res1 = str1.replace(/is/g,"IS");
console.log(res1);
打印结果
my name IS abcd . IS no what IS you name?
3、正则表达式的定义(正则表达式示例的创建)
2种定义方式
1、// 自变量定义@H_502_7@
【案例】
//找到匹配abcd的字符
var str = "my name is Abcd . is no what is you name?";
var res = /abcd/i;
console.log(res.test(str));
打印结果为true
2、new RexExp();new一个正则表达式@H_502_7@
【案例】
//找到匹配abcd的字符
var str = "my name is Abcd . is no what is you name?";
var res = new RegExp("abcd","i");
console.log(res.test(str));
打印结果为true
4、正则表达式的修饰符(flag)
i----ignore 忽略大小写
g----global 全局全部
m----multiline 多行
5、正则表达式的字符
普通字符
a-z Z-A 0-9@H_502_7@
特殊字符
() [] {} ? * + ^ $ |@H_502_7@
预定义字符
n d w s t b……@H_502_7@
6、元字符[] (元类字符)
代表一类字符
【案例1】
//替换多有的jgf
var str = "aasj jgjgdk ghghr lfjfhd";
var res = str.replace(/[jgf]/g,"WJ");
console.log(res);
打印结果
aasWJ WJWJWJWJdk WJhWJhr lWJWJWJhd
【案例2】
//找到以a开头以c结尾中间是sdf的字符
var str1 = "abc adc asc afc ahc atc adc";
var res = str1.match(/a[sdf]c/g);
console.log(res);
打印结果
(4) ["adc","asc","afc","adc"]
7、量词
{} 用来修饰字符的
8、贪婪模式
贪婪模式是什么,我们怎么解决贪婪模式
正则匹配尽可能给我们匹配跟多的,这就就出现了贪婪模式@H_502_7@
我们解决贪婪模式的方式就是反贪婪模式,在其后面加?即可@H_502_7@
9、分支 分组和应用
分支用|表示
分组用()表示
10、边界问题 ^$ b
整个字符串边界 ^ $
单词的边界 b B
11、前瞻
【案例】
正向前瞻reg(?=reg1)
//返回91前面的shitu
var str = "shitu 91 nihao!";
var reg = str.match(/shitu (?=91)/g);
console.log(reg);
打印结果["shitu "]
反向前瞻reg(?!reg1)
//找不到任何
var str = "shitu 91 nihao!";
var reg3 = str.match(/shitu (?!91)/g);
console.log(reg3);
打印结果null
//返回shitu 91 忽略分组
var str = "shitu 91 nihao!";
var reg1 = str.match(/shitu (?:91)/);
console.log(reg1);
打印结果
["shitu 91",index: 0,input: "shitu 91 nihao!"]
//返回shitu 91 91
var str = "shitu 91 nihao!";
var reg2 = str.match(/shitu (91)/);
console.log(reg2);
打印结果
(2) ["shitu 91","91",input: "shitu 91 nihao!"]
12、正则对象的属性
iastIndex
flags
global
ignoreCase
multiline
source
喜欢的朋友可以点赞和收藏奥
原文链接:https://www.f2er.com/regex/358037.html
【案例】
//找到匹配abcd的字符 var str = "my name is Abcd . is no what is you name?"; var res = /abcd/i; console.log(res.test(str)); 打印结果为true
2、new RexExp();new一个正则表达式@H_502_7@
【案例】
//找到匹配abcd的字符
var str = "my name is Abcd . is no what is you name?";
var res = new RegExp("abcd","i");
console.log(res.test(str));
打印结果为true
4、正则表达式的修饰符(flag)
i----ignore 忽略大小写
g----global 全局全部
m----multiline 多行
5、正则表达式的字符
普通字符
a-z Z-A 0-9@H_502_7@
特殊字符
() [] {} ? * + ^ $ |@H_502_7@
预定义字符
n d w s t b……@H_502_7@
6、元字符[] (元类字符)
代表一类字符
【案例1】
//替换多有的jgf
var str = "aasj jgjgdk ghghr lfjfhd";
var res = str.replace(/[jgf]/g,"WJ");
console.log(res);
打印结果
aasWJ WJWJWJWJdk WJhWJhr lWJWJWJhd
【案例2】
//找到以a开头以c结尾中间是sdf的字符
var str1 = "abc adc asc afc ahc atc adc";
var res = str1.match(/a[sdf]c/g);
console.log(res);
打印结果
(4) ["adc","asc","afc","adc"]
7、量词
{} 用来修饰字符的
8、贪婪模式
贪婪模式是什么,我们怎么解决贪婪模式
正则匹配尽可能给我们匹配跟多的,这就就出现了贪婪模式@H_502_7@
我们解决贪婪模式的方式就是反贪婪模式,在其后面加?即可@H_502_7@
9、分支 分组和应用
分支用|表示
分组用()表示
10、边界问题 ^$ b
整个字符串边界 ^ $
单词的边界 b B
11、前瞻
【案例】
正向前瞻reg(?=reg1)
//返回91前面的shitu
var str = "shitu 91 nihao!";
var reg = str.match(/shitu (?=91)/g);
console.log(reg);
打印结果["shitu "]
反向前瞻reg(?!reg1)
//找不到任何
var str = "shitu 91 nihao!";
var reg3 = str.match(/shitu (?!91)/g);
console.log(reg3);
打印结果null
//返回shitu 91 忽略分组
var str = "shitu 91 nihao!";
var reg1 = str.match(/shitu (?:91)/);
console.log(reg1);
打印结果
["shitu 91",index: 0,input: "shitu 91 nihao!"]
//返回shitu 91 91
var str = "shitu 91 nihao!";
var reg2 = str.match(/shitu (91)/);
console.log(reg2);
打印结果
(2) ["shitu 91","91",input: "shitu 91 nihao!"]
12、正则对象的属性
iastIndex
flags
global
ignoreCase
multiline
source
喜欢的朋友可以点赞和收藏奥
原文链接:https://www.f2er.com/regex/358037.html
特殊字符
() [] {} ? * + ^ $ |@H_502_7@
预定义字符
n d w s t b……@H_502_7@
6、元字符[] (元类字符)
代表一类字符
【案例1】
//替换多有的jgf
var str = "aasj jgjgdk ghghr lfjfhd";
var res = str.replace(/[jgf]/g,"WJ");
console.log(res);
打印结果
aasWJ WJWJWJWJdk WJhWJhr lWJWJWJhd
【案例2】
//找到以a开头以c结尾中间是sdf的字符
var str1 = "abc adc asc afc ahc atc adc";
var res = str1.match(/a[sdf]c/g);
console.log(res);
打印结果
(4) ["adc","asc","afc","adc"]
7、量词
{} 用来修饰字符的
8、贪婪模式
贪婪模式是什么,我们怎么解决贪婪模式
正则匹配尽可能给我们匹配跟多的,这就就出现了贪婪模式@H_502_7@
我们解决贪婪模式的方式就是反贪婪模式,在其后面加?即可@H_502_7@
9、分支 分组和应用
分支用|表示
分组用()表示
10、边界问题 ^$ b
整个字符串边界 ^ $
单词的边界 b B
11、前瞻
【案例】
正向前瞻reg(?=reg1)
//返回91前面的shitu
var str = "shitu 91 nihao!";
var reg = str.match(/shitu (?=91)/g);
console.log(reg);
打印结果["shitu "]
反向前瞻reg(?!reg1)
//找不到任何
var str = "shitu 91 nihao!";
var reg3 = str.match(/shitu (?!91)/g);
console.log(reg3);
打印结果null
//返回shitu 91 忽略分组
var str = "shitu 91 nihao!";
var reg1 = str.match(/shitu (?:91)/);
console.log(reg1);
打印结果
["shitu 91",index: 0,input: "shitu 91 nihao!"]
//返回shitu 91 91
var str = "shitu 91 nihao!";
var reg2 = str.match(/shitu (91)/);
console.log(reg2);
打印结果
(2) ["shitu 91","91",input: "shitu 91 nihao!"]
12、正则对象的属性
iastIndex
flags
global
ignoreCase
multiline
source
喜欢的朋友可以点赞和收藏奥
原文链接:https://www.f2er.com/regex/358037.html
6、元字符[] (元类字符)
代表一类字符
【案例1】
//替换多有的jgf var str = "aasj jgjgdk ghghr lfjfhd"; var res = str.replace(/[jgf]/g,"WJ"); console.log(res); 打印结果 aasWJ WJWJWJWJdk WJhWJhr lWJWJWJhd
【案例2】
//找到以a开头以c结尾中间是sdf的字符 var str1 = "abc adc asc afc ahc atc adc"; var res = str1.match(/a[sdf]c/g); console.log(res); 打印结果 (4) ["adc","asc","afc","adc"]
7、量词
{} 用来修饰字符的
8、贪婪模式
贪婪模式是什么,我们怎么解决贪婪模式
正则匹配尽可能给我们匹配跟多的,这就就出现了贪婪模式@H_502_7@
我们解决贪婪模式的方式就是反贪婪模式,在其后面加?即可@H_502_7@
9、分支 分组和应用
分支用|表示
分组用()表示
10、边界问题 ^$ b
整个字符串边界 ^ $
单词的边界 b B
11、前瞻
【案例】
正向前瞻reg(?=reg1)
//返回91前面的shitu
var str = "shitu 91 nihao!";
var reg = str.match(/shitu (?=91)/g);
console.log(reg);
打印结果["shitu "]
反向前瞻reg(?!reg1)
//找不到任何
var str = "shitu 91 nihao!";
var reg3 = str.match(/shitu (?!91)/g);
console.log(reg3);
打印结果null
//返回shitu 91 忽略分组
var str = "shitu 91 nihao!";
var reg1 = str.match(/shitu (?:91)/);
console.log(reg1);
打印结果
["shitu 91",index: 0,input: "shitu 91 nihao!"]
//返回shitu 91 91
var str = "shitu 91 nihao!";
var reg2 = str.match(/shitu (91)/);
console.log(reg2);
打印结果
(2) ["shitu 91","91",input: "shitu 91 nihao!"]
12、正则对象的属性
iastIndex
flags
global
ignoreCase
multiline
source
喜欢的朋友可以点赞和收藏奥
原文链接:https://www.f2er.com/regex/358037.html
9、分支 分组和应用
分支用|表示
分组用()表示
10、边界问题 ^$ b
整个字符串边界 ^ $
单词的边界 b B
11、前瞻
【案例】
正向前瞻reg(?=reg1)
//返回91前面的shitu var str = "shitu 91 nihao!"; var reg = str.match(/shitu (?=91)/g); console.log(reg); 打印结果["shitu "]
反向前瞻reg(?!reg1)
//找不到任何 var str = "shitu 91 nihao!"; var reg3 = str.match(/shitu (?!91)/g); console.log(reg3); 打印结果null
//返回shitu 91 忽略分组 var str = "shitu 91 nihao!"; var reg1 = str.match(/shitu (?:91)/); console.log(reg1); 打印结果 ["shitu 91",index: 0,input: "shitu 91 nihao!"]
//返回shitu 91 91 var str = "shitu 91 nihao!"; var reg2 = str.match(/shitu (91)/); console.log(reg2); 打印结果 (2) ["shitu 91","91",input: "shitu 91 nihao!"]