zoukankan      html  css  js  c++  java
  • 正则表达式

    //正则表达式
    //正则表达式是一个用事先定义好的符号,以及这些符号的组合而成的一个有规则的字符串.
    //用来对其他的字符串做一个过滤逻辑.
    
    
    //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.元字符/预定义类-就是事先给他赋予了一些含义的字符.
    //  .	[^
    
    ]	  除了换行和回车之外的任意字符
    
    //  d	[0-9]		数字字符    [0123456789]  digit
    //  D	[^0-9]	非数字字符
    
    //  s	[f
    	v]	不可见字符
    //  S	[^f
    	v]	可见字符
    
    //  w	[a-zA-Z0-9_]		单词字符(所有的字母数字和_)
    //  W	[^a-zA-Z0-9_]	  非单词字符
    
    
    
    //--------.	除了换行和回车之外的任意字符-----------------------------------------
    //如果检测的字符串里面包含 除了换行和回车之外的任意字符 那就返回true,否则返回false.
    console.log(/./.test("
    "));   //false
    console.log(/./.test("
    ")); //false
    console.log(/./.test("" +
            ""));  //false
    console.log(/./.test("
    1")); //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
    "));  //true
    console.log(/s/.test("abc
    "));  //true
    console.log(/s/.test("abc
    "));  //true
    console.log(/s/.test(" "));  //true  **** 空格字符串
    console.log(/s/.test("" +
            ""));  //false  他是一个空字符串,没有不可见字符。
    console.log(/s/.test("
    	
    "));  //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
    "));  //true
    console.log(/S/.test("abc
    "));  //true
    console.log(/S/.test("abc
    "));  //true
    console.log(/S/.test(" "));  //false
    console.log(/S/.test("
    	
    "));  //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
    ]/.test("2"))//true
    console.log(/[a-m1-5]/.test("65666"))//true
    console.log(/[a-m1-5]/.test("6666"))//false
    console.log(/[a-m1-5
    ]/.test("ttttyyyyzzz66666"))//false
    console.log(/[a-m1-5
    ]/.test("
    "))//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(/^dD/.test('666665'));//false
    console.log(/^dD/.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
    abat ")); //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(/^abcd$/.test("abc7")); //true
    console.log(/^abcd$/.test("abc7abc9")); //false
    console.log(/abcd/.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)21/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);
    
  • 相关阅读:
    Git忽略规则.gitignore梳理
    makefile 系统脚本分析
    Kipmi0 占用CPU 100%
    kubectl检查组件健康状态异常处理
    Java 数组如何转成List集合
    用户控件中多控件自定义单击事件
    DevExpress启动窗体SplashScreen
    使用C#获取统计局行政区划代码
    解决mysqlclient模块安装问题
    com.aspose.words 类LoadOptions
  • 原文地址:https://www.cnblogs.com/joker-hk/p/12152650.html
Copyright © 2011-2022 走看看