正则表达式

//正则表达式
//正则表达式是一个用事先定义好的符号,以及这些符号的组合而成的一个有规则的字符串.
//用来对其他的字符串做一个过滤逻辑.


//Regular Expression  RegExp   RegEx

1.正则对象的创建

//1.正则表达式对象的test方法. 
//语法: 正则对象.test('需要用该正则规则检测的字符串');
//作用: 检测这个小括号里面的字符串符合不符合这个正则对象的规则, 如果符合就返回true,否则就返回一个false.


//2.正则表达式对象的创建方式
//01:字面量
var reg1 = /<.{4}>/;
var res = reg1.test('我是一个快乐的</head>字符串');
console.log(res);


//02:构造函数
var reg2 = new RegExp("<.{4}>");
var res = reg2.test('我是一个快乐的</hed>字符串');
console.log(res);

2.预定义类/元字符

//1.元字符/预定义类-就是事先给他赋予了一些含义的字符.
//  .	[^\n\r]	  除了换行和回车之外的任意字符

//  \d	[0-9]		数字字符    [0123456789]  digit
//  \D	[^0-9]	非数字字符

//  \s	[\f\r\n\t\v]	不可见字符
//  \S	[^\f\r\n\t\v]	可见字符

//  \w	[a-zA-Z0-9_]		单词字符(所有的字母数字和_)
//  \W	[^a-zA-Z0-9_]	  非单词字符



//--------.	除了换行和回车之外的任意字符-----------------------------------------
//如果检测的字符串里面包含 除了换行和回车之外的任意字符 那就返回true,否则返回false.
console.log(/./.test("\r"));   //false
console.log(/./.test("\r\n")); //false
console.log(/./.test("" +
        ""));  //false
console.log(/./.test("\r1")); //true
console.log(/./.test("32435dh1")); //true
console.log(/./.test("d")); //true


//---------\d	数字字符--------------------------------------
//检测的字符串里面如果有数字,就是true, 如果没有数字,就是false
console.log(/\d/.test("abc"));  //false
console.log(/\d/.test("!@#$")); //false
console.log(/\d/.test("!@#$adfgethfe"));  //false
console.log(/\d/.test("!@#$adfgethfe1")); //true
console.log(/\d/.test("123456")); //true



//---------\D		非数字字符--------------------------------------
//test检测: 只要被检测的字符串中包含了非数字字符,那么结果就是true.
console.log(/\D/.test("abc"));  //true
console.log(/\D/.test("!@#$")); //true
console.log(/\D/.test("!@#$adfgethfe"));  //true
console.log(/\D/.test("!@#$adfgethfe1")); //true
console.log(/\D/.test("13243546b576871")); //true
console.log(/\D/.test("123456")); //false


//--------\s  不可见字符-----------------------------------------
console.log(/\s/.test("abc\r"));  //true
console.log(/\s/.test("abc\n"));  //true
console.log(/\s/.test("abc\r\n"));  //true
console.log(/\s/.test(" "));  //true  **** 空格字符串
console.log(/\s/.test("" +
        ""));  //false  他是一个空字符串,没有不可见字符。
console.log(/\s/.test("\r\n\t\r"));  //true
console.log(/\s/.test("abcdeg"));  //false
console.log(/\s/.test("12354676"));  //false
console.log(/\s/.test("12354676aahgrjtj"));  //false
console.log(/\s/.test("12354676aahgrjtj!@#$"));  //false
console.log(/\s/.test("12354676aahgrjtj!@#$ "));  //true


//--------\S  可见字符-----------------------------------------
console.log(/\S/.test("abc\r"));  //true
console.log(/\S/.test("abc\n"));  //true
console.log(/\S/.test("abc\r\n"));  //true
console.log(/\S/.test(" "));  //false
console.log(/\S/.test("\r\n\t\r"));  //false
console.log(/\S/.test("abcdeg"));  //true


//------ \w 单词字符(所有的字母数字和_)--------------------------------
console.log(/\w/.test("!@#$%#@#$%$#@"));  //false
console.log(/\w/.test("!@#$%#@#$%$#@a")); //true
console.log(/\w/.test("!@#$%#@0#$%$#@")); //true
console.log(/\w/.test("!@#$%#@_#$%$#@")); //true
console.log(/\w/.test("!!!!!1234567")); //true
console.log(/\w/.test("!!!!!")); //false


//------ \W 非单词字符(所有的字母数字和_)--------------------------------
//检测的字符串里面如果有非单词字符,就返回true.
console.log(/\W/.test("abcserge3"));  //false
console.log(/\W/.test("fsdgetherg!")); //true
console.log(/\W/.test("!123456@")); //true
console.log(/\W/.test("!@#$%#@_#$%$#@")); //true
console.log(/\W/.test("!!!!!1234567")); //true
console.log(/\W/.test("!!!!!")); //true



//参数
// i	忽略大小写
// g	全局匹配 global
// gi	全局匹配+忽略大小写
console.log(/a/.test("a")); //true
console.log(/a/.test("A")); //false
console.log(/a/i.test("A")); //true
console.log(/a/i.test("bbb"));//false

3.自定义类

//1.自定义类

//1.1 预定义类 \d 是表示数字
console.log(/\d/.test("123")); //true

//1.2 自定义类
//你用test检测的字符串里面,有没有包含d这个字母。如果有就是true.
console.log(/d/.test("123")); //false  和上面例子不同的是去掉了斜线\,答案就完全不同了
console.log(/d/.test("123d")); //true


//你用test检测的字符串里面, 有没有包含heima,,如果有就是true.
//一定是连续的完整的至少出现一次,结果才是true.
console.log(/heima/.test("hei")); //false
console.log(/heima/.test("ma")); //false
console.log(/heima/.test("heima")); //true
console.log(/heima/.test("heiheimama")); //true
console.log(/heima/.test("heihei.mama")); //false
console.log(/heima/.test("heimaheima")); //true
console.log(/heima/.test("林黑群真尼玛hei")); //false
console.log(/heima/.test("he1im2a")); //false

4.或和优先级

//1.或和优先级   |    ()
// /男|女/.test('');
console.log(/男|女/.test('豆蔻是nv的吗?'));

//用test检测的字符串里面,如果有hei或者有ma都是true.
console.log(/hei|ma/.test("hei")); //true
console.log(/hei|ma/.test("ma")); //true
console.log(/hei|ma/.test("heima")); //true
console.log(/hei|ma/.test("heiheimama")); //true
console.log(/hei|ma/.test("heimaheima")); //true
console.log(/hei|ma/.test("林黑群真尼玛hei")); //true
console.log(/hei|ma/.test("he1im2a")); //false


//用test检测的字符串里面,如果有heia,或者hema,那么就是true.
console.log(/he(i|m)a/.test("hei")); //false
console.log(/he(i|m)a/.test("ma")); //false
console.log(/he(i|m)a/.test("heima")); //false
console.log(/he(i|m)a/.test("heia")); //true
console.log(/he(i|m)a/.test("hema")); //true
console.log(/he(i|m)a/.test("heimaheima")); //false
console.log(/he(i|m)a/.test("heiahahahhaha")); //true
console.log(/he(i|m)a/.test("hahahhahahema")); //true
console.log(/he(i|m)a/.test("heiaheiahemahema")); //true
console.log(/he(i|m)a/.test("he1iaheaiahe3mahe4ma")); //false

5.简单类

//1.简单类   []
//简单类只代表一个字符
//[abc] 此时这个字符a可以b可以c可以


//1.1 如果用test检测的字符串中,出现[]中的字符任意一个,就是true.
console.log(/[abc]/.test("a"));  //true
console.log(/[abc]/.test("b"));  //true
console.log(/[abc]/.test("c"));  //true
console.log(/[abc]/.test("d"));  //false
console.log(/[abc]/.test("123456a")); //true
console.log(/[abc]/.test("123456abcabc")); //true
console.log(/[abc]/.test("123456")); //false
console.log(/[abc]/.test("ddddddddd!!!!!!")); //false
console.log(/[abc]/.test("dddddbdddd!!!!!!"));//true
console.log(/[abc]/.test("dddddBdddd!!!!!!")); //false
console.log(/[abc]/i.test("dddddBdddd!!!!!!")); //true


//1.2 因为这里是一个自定义类,所以要出现至少 是y中间是a或者b或者cz连起来的三个字符。
//检测的字符串中有: yaz  ybz   ycz   ,就是为true。
console.log(/y[abc]z/.test("yaz")); //true
console.log(/y[abc]z/.test("ybz")); //true
console.log(/y[abc]z/.test("ycz")); //true
console.log(/y[abc]z/.test("yz")); //false
console.log(/y[abc]z/.test("ydz")); //false
console.log(/y[abc]z/.test("yabcz")); //false
console.log(/y[abc]z/.test("yazybzycz")); //true
console.log(/y[abc]z/.test("lallalalalallayaz")); //true
console.log(/y[abc]z/.test("lallalalalallaybz")); //true
console.log(/y[abc]z/.test("lallalalalallaycz")); //true


//1.3 那有同学难免会问这和或者有啥区别啊.区别在于如果想要写下面的式子
//yaaz   ybbz   yccz

//a.或可以这样写
// /y(aa|bb|cc)z/
console.log(/y(aa|bb|cc)z/.test("yaaz")); //true
console.log(/y(aa|bb|cc)z/.test("ybbz")); //true
console.log(/y(aa|bb|cc)z/.test("yccz")); //true
console.log(/y(aa|bb|cc)z/.test("ybaz")); //false

//b.那简单类这样写的话,明显词不达意
//yaaz  yabz yacz  ybaz ybbz ybcz ycaz ycbz yccz
// /y[abc][abc]z/
console.log(/y[abc][abc]z/.test('ybaz')); //true

6.负向类

//1.负向类   [^ ]
//注意:负向类是中括号中的小尖尖.      
//\d  数字[0-9]   [0123456789]
//\D  非数字[^0-9]

//如果用test检测的字符串中,有 除了中括号中的内容之外的任意一个,出现一次或者一次以上,就是true
console.log(/[^abc]/.test('a')); //false
console.log(/[^abc]/.test('abcaaabbbcccaaabc')); //false
console.log(/[^abc]/.test('abcaaabbbcccaaabc!')); //true
console.log(/[^abc]/.test('ad')); //true
console.log(/[^abc]/.test('a1')); //true
console.log(/[^abc]/.test('abcabc')); //false
console.log(/[^abc]/.test('abcabcd')); //true
console.log(/[^abc]/.test('ad')); //true

7.范围类

//1.范围类
console.log(/[0123456789]/.test("ab0cd")); //true  这样写太麻烦,可以写成下面这样
console.log(/[0-9]/.test("ab0cd")); //true

//范围类就是表示一个范围
console.log(/[a-z]/.test('1111')); //false
console.log(/[a-z]/.test('1111h')); //true
console.log(/[A-Z]/.test('aa'));//false
console.log(/[A-Z]/.test('aaY'));//true

console.log(/[a-zA-Z0-9]/.test("2"));//true
console.log(/[a-zA-Z0-9]/.test("b"));//true
console.log(/[a-zA-Z0-9]/.test("C"));//true

8.组合类

//组合类:就是把前面讲的那些多个运用在一起
console.log(/[a-m1-5]/.test("b"))//true
console.log(/[a-m1-5\n]/.test("2"))//true
console.log(/[a-m1-5]/.test("65666"))//true
console.log(/[a-m1-5]/.test("6666"))//false
console.log(/[a-m1-5\n]/.test("ttttyyyyzzz66666"))//false
console.log(/[a-m1-5\n]/.test("\n"))//true

//console.log("================");
console.log(/[^0-5][^a-g]/.test("6")); //false
console.log(/[^0-5][^a-g]/.test("6z")); //true
console.log(/[^0-5][^a-g]/.test("6z7y")); //true
console.log(/[^0-5][^a-g]/.test("z7")); //true ***
console.log(/[^0-5][^a-g]/.test("4")); //false
console.log(/[^0-5][^a-g]/.test("4b")); //false
console.log(/[^0-5][^a-g]/.test("b4")); //true
console.log(/[^0-5][^a-g]/.test("4yaaabbbccc")); //false
console.log(/[^0-5][^a-g]/.test("4yaaabbbc7cc")); //true   c是0-5之外的,7是a-g之外的,所以c7是满足的
console.log(/[^0-5][^a-g]/.test("4yaaabbbc7cc9x")); //true   c7 和  c9  和9x  都是满足的。
console.log(/[^0-5][^a-g]/.test("66"));//true


//console.log("================");
console.log(/[^0-5][^a-g]/.test("4b")); //false
console.log(/[^0-5]|[^a-g]/.test("4b")); //true    4是a-g之外的,满足;;  b是0-5之外的,满足。
console.log(/[^0-5]|[^a-g]/.test("4")); //true
console.log(/[^0-5]|[^a-g]/.test("b")); //true
console.log(/[^0-5][^a-g]/.test("2")); //false
console.log(/[^0-5]|[^a-g]/.test("2"));  //true   2是a-g之外的。


// console.log("================");
console.log(/[^0-7]|[^5-9]/.test("8")); //true     8是0-7之外的,满足
console.log(/[^0-7]|[^5-9]/.test("5")); //false
console.log(/[^0-7]|[^5-9]/.test("567")); //false
console.log(/[^0-7]|[^5-9]/.test("5678")); //true    8就是0-7之外的,满足。

9.边界

//1.边界
//  /^ /  以什么开头 
//  / $/  以什么结尾

//a. ^ 会匹配行或者字符串的起始位置
console.log(/\d/.test("aaabb123ccc")); //true  预定义类,只要检测的字符串中出现了数字就是true.
console.log(/^\d/.test("aaabb123ccc")); //false   如果检测的字符串的起始位置是数字就是true.
console.log(/^\d/.test("1aaabb123ccc")); //true
console.log(/^\d/.test("1aaabbccc")); //true

console.log(/^6a/.test("6666677776abbbb")); //false
console.log(/^6a/.test("6a7777777")); //true

console.log(/^\d\D/.test('666665'));//false
console.log(/^\d\D/.test('6u66665'));//true


// console.log("=====================================");
console.log(/^6/.test("6")); //true
console.log(/^6/.test("76")); //false

console.log(/^6.a/.test("666abat ")); //false
console.log(/^6.a/.test("66abat ")); //true
console.log(/^6.a/.test("6*abat ")); //true
console.log(/^6.a/.test("6\nabat ")); //false

console.log(/^6+a/.test("6666a77776abbbb")); //true
console.log(/^6+a/.test("6a77776abbbb")); //true



//b.$ 会匹配行或字符串的结尾位置
console.log(/ac/.test("ac777")); //true
console.log(/ac$/.test("ac777")); //false
console.log(/ac$/.test("777ac")); //true

10.严格匹配

//严格匹配
//^$组合在一起,就表示严格匹配  只能是他不能有别的东西,并且他只能出现一次     有且只有一次
console.log(/男/.test('静静是男的'));//true
console.log(/男/.test('子瑜是男男男男的'));//true

console.log(/^男$/.test('大锐是男的'));//false
console.log(/^男$/.test('男'));//true
console.log(/^男$/.test('鹏鹏是男男男男的'));//false
console.log(/^男$/.test('男女'));//false
console.log(/^男$/.test('男男'));//false
console.log(/^男$/.test('男'));//true


console.log(/^abc$/.test('abc'));//true
console.log(/^abc$/.test('abc1'));//false
console.log(/^abc$/.test('abcabc'));//false


console.log(/^bc/.test("bcbcbc")); //true
console.log(/bc$/.test("bcbcbc")); //true
console.log(/^bc$/.test("bcbcbc")); //严格匹配  false
console.log(/^bc$/.test("bc")); //true
console.log(/^bc$/.test("bc1")); //false

console.log(/heima/.test("heimaheima")); //true
console.log(/^heima$/.test("heimaheima")); //false
console.log(/^heima$/.test("heima")); //true
console.log(/^heima$/.test("heima1")); //false


console.log(/abc/.test("abc")); //true
console.log(/abc/.test("abcabcabc")); //true
console.log(/^abc$/.test("abcabcabc")); //false
console.log(/^abc$/.test("abc")); //true
console.log(/^abc$/.test("abc1")); //false
console.log(/^abc$/.test("aabc")); //false



//自定义类,只要检测的字符串中包含数字就是true.
console.log(/\d/.test("1"));//true
console.log(/\d/.test("12345"));//true
console.log(/\d/.test("abc12345def"));//true
console.log(/\d/.test("abc1"));//true

console.log(/^\d$/.test("1"));//true
console.log(/^\d$/.test("12345"));//false
console.log(/^\d$/.test("abc12345def"));//false
console.log(/^\d$/.test("abc1def"));//false
console.log(/^\d$/.test("abc1"));//false
console.log(/^\d$/.test("a"));//false


console.log(/^\d{2}$/.test("22")); //true
console.log(/^\d{2}$/.test("223")); //false
console.log(/^\d{2}$/.test("22b")); //false


console.log(/^\d$/.test("9")); //true
console.log(/^abc\d$/.test("abc7")); //true
console.log(/^abc\d$/.test("abc7abc9")); //false
console.log(/abc\d/.test("abc7abc9")); //true

11.量词01

//1.量词
// "*"	重复零次或更多 x>=0          {0,}
// "+"	重复一次或更多次 x>=1        {1,}
// "?"	重复零次或一次  x=(0||1)     {0,1}

//*
console.log(/color/.test("color")); //true
console.log(/color/.test("colorcolor")); //true
console.log(/^colo*r$/.test("colr")); //true
console.log(/^colo*r$/.test("color")); //true
console.log(/^colo*r$/.test("coloor")); //true
console.log(/^colo*r$/.test("colooor")); //true
console.log(/^colo*r$/.test("colooorcolooor")); //false 不符合严格匹配
console.log(/^colo*r$/.test("olooor")); //false 不符合严格匹配


console.log(/^(color)*$/.test(""));//true
console.log(/^(color)*$/.test("1"));//false,不符合严格匹配
console.log(/^(color)*$/.test("color"));//true
console.log(/^(color)*$/.test("colorcolor"));//true
console.log(/^(color)*$/.test("colorcolorcolor"));//true
console.log(/^(color)*$/.test("1colorcolorcolor"));//false 不符合严格匹配
console.log(/^(color)$/.test("colorcolorcolor"));//false  不符合严格匹配


//+
console.log(/^colo+r$/.test("colr")); //false
console.log(/^colo+r$/.test("color")); //true
console.log(/^colo+r$/.test("coloor")); //true
console.log(/^colo+r$/.test("colooor")); //true
console.log(/^colo+r$/.test("colooorcolooor")); //false  不符合严格匹配



//?
console.log(/^colo?r$/.test("colr")); //true
console.log(/^colo?r$/.test("color")); //true
console.log(/^colo?r$/.test("coloor")); //false
console.log(/^colo?r$/.test("colooor")); //false
console.log(/^colo?r$/.test("colooorcolooor")); //false  不符合严格匹配
console.log(/^colo?r$/.test("colorcolor")); //false  不符合严格匹配

12.量词02

//1.量词
//{n}	n次	x=n
//{n,}	重复n次或更多  x>=n
//{n,m} 重复出现的次数比n多但比m少 n<=x<=m


//{n}
console.log(/^colo{2}r$/.test("colr")); //false
console.log(/^colo{2}r$/.test("color"));//false
console.log(/^colo{2}r$/.test("coloor"));//true
console.log(/^colo{2}r$/.test("colooor"));//false
console.log(/^colo{2}r$/.test("coloorcoloor"));//false  不符合严格匹配
console.log(/^colo{2}r$/.test("coloorc"));//false 不符合严格匹配


//{n,}
console.log(/^colo{2,}r$/.test("colr")); //false
console.log(/^colo{2,}r$/.test("color"));//false
console.log(/^colo{2,}r$/.test("coloor"));//true
console.log(/^colo{2,}r$/.test("colooor"));//true
console.log(/^colo{2,}r$/.test("coloorcoloor"));//false  不符合严格匹配的


//{n,m}
console.log(/^colo{2,3}r$/.test("colr")); //false
console.log(/^colo{2,3}r$/.test("color"));//false
console.log(/^colo{2,3}r$/.test("coloor"));//true
console.log(/^colo{2,3}r$/.test("colooor"));//true
console.log(/^colo{2,3}r$/.test("coloooor"));//false
console.log(/^colo{2,3}r$/.test("coloorcoloor"));//false  不符合严格匹配
console.log(/^colo{2,5}r$/.test("coloooor"));//true


//* 0次或者更多次  {0,}
//+ 1次或者多次    {1,}
//?0次或者1次     {0,1}

13.验证汉字

//需求: 写一个正则去验证/去判断一个字符串中是否出现了中文汉字       "ewrfewrferew国rewr"

//常识01:
//在js中任何一个汉字都有一个唯一的Unicode编码. 

//02. 
//如何查看一个汉字的Unicode编码?
escape("一");
"%u4E00"

//03. 
unescape("%u4E00");
"一"


//04.所有的汉字都在下面这个范围中. 
[\u4e00-\u9fa5]



//05.验证汉字
console.log(/[\u4e00-\u9fa5]/.test("ewrfewrferewrewr")); //false
console.log(/[\u4e00-\u9fa5]/.test("ewrfewrferew国rewr"));//true
console.log(/[\u4e00-\u9fa5]/.test("ewrfewrferew鱻rewr"));
console.log(/[\u4e00-\u9fa5]/.test("ewrfewrferew窳rewr"));
console.log(/[\u4e00-\u9fa5]/.test("ewrfewrferew旕rewr"));
console.log(/[\u4e00-\u9fa5]/.test("ewrfewrferew鬰rewr"));
console.log(/[\u4e00-\u9fa5]/.test("ewrfewrferew國rewr"));



//06.验证汉族姓名(2-4中文)
console.log(/^[\u4e00-\u9fa5]{2,4}$/.test("豆"));
console.log(/^[\u4e00-\u9fa5]{2,4}$/.test("豆蔻"));
console.log(/^[\u4e00-\u9fa5]{2,4}$/.test("豆小蔻"));
console.log(/^[\u4e00-\u9fa5]{2,4}$/.test("欧阳豆蔻"));
console.log(/^[\u4e00-\u9fa5]{2,4}$/.test("欧阳豆豆蔻"));

14.字符串方法-replace替换

//使用正则的字符串方法 replace.
//1. 
// var str = 'abcdefgbcd';
// var strNew = str.replace(/b/g, 'B');
// console.log(strNew);
// console.log(str);


//2. 
// var str = '龙翔100俊杰200冰川300豆蔻400';
// var strNew = str.replace(/\d+/g,'随便');
// console.log(strNew);


//作业: 
//3.1 所有的逗号替换成句号abc,efg,123,abc,123,a
//3.2 修改成绩,全改成100分
//var jsonStr = '[{"name":"张三",score:80},{"name":"张三",score:90},{"name":"张三",score:81}]';
//3.3 把, , . 和。都改成 。
//var str = "“你饿了,调我们的粮进京。你渴了.调我们的水进京。高考了,你特么想尽千方百计不让我们的孩子进京。为什么?!” 我们呼吁:全国一张卷,一个录取线!愿赌服输!最近高考方案闹得沸沸扬扬,其实大家就是要的公平竞争!同样都是孩子,同样的国家,同样的教育!为何不同的待遇?";
//3.4 去掉字符串的前后空格,封装成函数
var str = ' abcdefg ';
var strNew = str.trim();
console.log("=="+str+"==");
console.log("=="+strNew+"==");


//我们自己写一个去掉字符串前后空格的函数. 
// function myTrim(str){
//   //思路: 把传进来的这个字符串str的前后空格,用空字符串""来替换. 
//   var strNew = str.replace(/^\s+|\s+$/g,"");
//   return strNew;
// }
// var str = '  abcdefg  ';
// var strNew = myTrim(str);
// console.log("=="+str+"==");
// console.log("=="+strNew+"==");

15.字符串的方法-match提取

//字符串的方法-match提取
//1 提取工资
// var str = "张三:1000,李四:5000,王五:8000。";
// var arr = str.match(/\d+/g);
// console.log(arr);



//5.2 提取email地址
var str = "123123@xx.com,fangfang@valuedopinions.cn 好人一生平安286669312@qq.com 2、emailenglish@emailenglish.englishtown.com 286669312@qq.com...川川好人";
var arr = str.match(/\w+@\w+(\.\w+)+/g);
console.log(arr);

16.分组提取

//1 分组提取
//提取email中的每一部分
// var str = "123123@xx.com哈哈penglin@qq.xx.oo";
// var reg = /(\w+)@(\w+)\.(\w+)(\.\w+)?/g;

// var array = str.match(reg);
// console.log(array);
// // //获取分组的数据  ()是分组
// console.log(RegExp.$1);
// console.log(RegExp.$2);
// console.log(RegExp.$3);
// console.log(RegExp.$4);



//分组练习1
// var str = "5=a,哈哈 6=b,呵呵 7=c";
// str = str.replace(/(\d)=(\w)/g, "$2====$1");
// console.log(str);


//分组练习2
var str = "1221你好2921我好2121它好8998他好2112";
var reg = /(\d)(\d)\2\1/g; //1221  8998  2112

var arr = str.match(reg); 
console.log(arr);


//  \1 代表 第一个 ( ) 里面部分 匹配的 字符串
//  \2 代表 第二个 ( ) 里面的。。

17.字符串方法-search检索

//字符串方法-search检索字符串

//1.需求:获取下面这个字符串第一次出现数字的位置. 
var str = '龙翔100俊杰200冰川300豆蔻400';
var res = str.search(/\d+/);
console.log(res);

18.字符串方法-split分割

//字符串分割方法 split
var str = "龙翔100俊杰200豆蔻300冰川";
var arr = str.split(/\d+/);
console.log(arr);
posted @ 2020-01-05 15:54  joker_hk  阅读(268)  评论(0编辑  收藏  举报