Javascript正则表达式

应用:平时我们再search一些string的时候,一些比较复杂字符串和数字的查找,用常规的查找方式就很困难,而正则表达式则可以匹配这种复杂的查找,方便我们的操作。

正则表达式:

  RegExp是正则表达式的缩写。

  当检索某个文本时,可以使用一种模式来描述要检索的内容,RegExp就是这种模式。

  简单的模式可以是一个单独的字符。

  更复杂的模式包括了更多的字符,并可用于解析、格式检查、替换等等。

  可以规定字符串中的检索位置,以及要检索的字符类型等等。

正则表达式的使用:

  声明正则表达式:

var part1 = new RegExp("Hello");
var part2 = /Hello/;

  这两个表达式表达的是同一种意思:声明出来一个正则表达式,可以用这个正则表达式去匹配“Hello”string。

test方法

  test()方法检索字符串中的指定值。返回值式true或false。

var pat = /my/
var str = "this is my code";
//测试是否匹配到了,如果str里有多个my,那么匹配到第一个my的时候就会返回true,而不会继续匹配下去。 console.log(pat.test(str));//true
exec方法

  exec()方法检索字符串中的指定值。返回值式被找到的值。如果没有发现匹配,则返回null。

var pat = /hello/;
console.log(pat.exec("oh hello everyone"));

  执行后返回["hello",index:3,input:"hello everyone"]分别是【“返回值”,所在位置,输入的input】

正则表达式类型

  /pattern/attributes

  参数attributes是一个可选的字符串,常用属性“g”(指定全局匹配)“i”(不区分大小写的匹配)

var pat = /my/ig;
var str = "My code this is my code";
console.log(str.match(pat));//["My","my"]

 

字符串正则

  1. search()字符串查找
    var str = "Hello World";
    console.log(str.search(/World/));// 6
  2. match()字符串匹配
    var str = "1 plus 1 equal 2";
    console.log(str.match(/\d+/)); // [1]
    console.log(str.match(/\d+/g)); // [1,1,2]
  3. replace()字符串替换
    var str = "Hello boy, I am a bad girl";
    console.log(str.replace(/boy/,"guy")); // Hello guy, I am a bad girl
    

    这里需要注意: 这里的替换并没有再源字符串上进行。

    var str = "Hello boy, I am a bad girl";
    var temp =str.replace(/boy/,"guy");
    console.log(str);//Hello boy, I am a bad girl
    console.log(temp); //Hello guy, I am a bad girl
  4. split()字符串分割 
    var str = "Hello guy, I am a bad girl";
    var temp1 = str.split("");
    var temp2 = str.split(/\s+/);
    console.log(temp1);
    console.log(temp2);
    //["H", "e", "l", "l", "o", " ", "g", "u", "y", ",", " ", "I", " ", "a", "m", " ", "a", " ", "b", "a", "d", " ", "g", "i", "r", "l"]
    //["Hello", "guy,", "I", "am", "a", "bad", "girl"]
    

正则写法

  • [abc]查找方括号之间的任何字符。
    var str = "Hello guy, I am a bad girl";
    var pat = /[a-h]/g;
    var temp1 = str.match(pat);
    console.log(temp1); // ["e", "g", "a", "a", "b", "a", "d", "g"]
  • [^abc]查找任何不在方括号之间的字符。
  • [0-9]查找任何从0至9的数字。
  • [a-z]查找任何从小写a到小写z的字符
  • [A-Z]查找任何从大写A到大写Z的字符
  • [A-z]查找任何从大写A到小写z的字符
  • [adgk]查找给定集合内的任何字符
  • [^adgk]查找给定集合外的任何字符
  • red|blue|green查找任何指定的选项
    var str = "Hello guy, I am a bad girl";
    var pat = /Hello|am/g;
    var temp1 = str.match(pat);
    console.log(temp1); //["Hello", "am"]
    
  • . 查找单个字符,除了换行和行结束符
    var str = "Hello guy, I am a bad girl";
    var pat = /g.y/g;
    var temp1 = str.match(pat);
    console.log(temp1);// guy
  • \w查找单词字符(字母、数字、下划线)
  • \W查找非单词字符
  • \d查找数字

还有好多好多,很难记忆。开发的时候有辅助网址:W3CfunsRegexper 。实际应用的时候是很复杂的,努力去研究研究~

posted @ 2017-08-15 20:42  Nnn_Lillian  阅读(144)  评论(0编辑  收藏  举报