正则表达式基本内容

正则表达式

简介

观点

  • RegExp 是正则表达式的缩写
  • 当检索某个文本时,能够运用RegExp来描述要检索的内容
  • 简朴的形式能够是一个零丁的字符
  • 更庞杂的形式包含了更多的字符,并可用于剖析、花样搜检、替代
  • 能够划定字符串中的检索位置,以及要检索的字符范例

作用

  • 给定的字符串是不是相符正则表达式的过滤逻辑
  • 从字符串中猎取我们想要的特定部份
  • 壮大的字符串替代才能

特性

  • 灵活性、逻辑性和功能性非常强
  • 能够迅速地用极简朴的体式格局到达字符串的庞杂掌握

返回值

  • 一个新的 RegExp 对象,具有指定的形式和标志。假如参数 pattern 是正则表达式而不是字符串,那末 RegExp() 组织函数将用与指定的 RegExp 雷同的形式和标志建立一个新的 RegExp 对象。
  • 假如不必 new 运算符,而将 RegExp() 作为函数挪用,那末它的行动与用 new 运算符挪用时一样,只是当 pattern 是正则表达式时,它只返回 pattern,而不再建立一个新的 RegExp 对象。

抛出

  • SyntaxError – 假如 pattern 不是正当的正则表达式,或 attributes 含有 “g”、”i” 和 “m” 以外的字符,抛出该非常。
  • TypeError – 假如 pattern 是 RegExp 对象,但没有省略 attributes 参数,抛出该非常。

元字符

  • d 婚配数字
  • D 婚配非数字
  • w 婚配字母数字下划线
  • W 婚配非字母数字下划线
  • s 婚配空白符
  • S 婚配非空白符
  • . 除换行符不测的恣意字符
  • ^ 以什么最先
  • $ 以什么末端

限定符

  • * 反复零次或屡次
  • + 反复一次或屡次
  • ? 反复零次或一次
  • {n} 反复n次
  • {n,} 反复n次或屡次
  • {n,m} 反复n次到m次

元字符串

  • [ ] 字符串用中括号括起来,示意婚配个中的任一字符,相当于或的意义
  • [ ^] 婚配中括号之内的内容
  • 转义符
  • | 或许,挑选二者中的一个
  • ( ) 分组
  • [u4e00-u9fa5] 婚配汉字

建立正则对象

  • 第一种体式格局
<script>
  var reg=new Regex('d','i');
  var reg=new Regex('d','gi');
</script>
  • 第二种体式格局
<script>
  var reg=/\d/i;
  var reg=/\d/gi;
</script>
  • i 疏忽大小写
  • g 全局婚配
  • gi 全局婚配+疏忽大小写

正则婚配

<script>
  var dateStr='2015-10-10';
  var reg=/^\d{4}-\d{1,2}-\d{1,2}$/
  console.log(reg.test(dataStr));
</script>

正则提取

<script>
  var dateStr='张三:1000,李四:5000,王五:4000';
  var array=dataStr.match(/\d+/g);
  console.log(array);
</script>

正则替代

<script>
  var dateStr='123AD asd qwe ert';
  dataStr=dataStr.replace(/\s/g,"xx");
  console.log(dataStr);
</script>

RegExp对象要领

test

<script>
  var patt1 = new RegExp("e");
  document.write(patt1.test("blue"));//true
  document.write(patt1.test("lala"));//false
</script>

exec

  • 检索字符串中的指定值。返回值是被找到的值。假如没有发明婚配,则返回 null
<script>
  var patt1 = new RegExp("e");
  document.write(patt1.exec("blue"));//e
  document.write(patt1.exec("lala"));//null
  }
</script>
  • exec()要领能够向 RegExp 对象增加第二个参数,以设定检索
  • 在运用g参数时,找到第一个e,并存储其位置,假如再次运转exec(),则从存储的位置最先检索,并找到下一个e,并存储其位置
<script>
  var patt1 = new RegExp("e","g");
  do {
    result=patt1.exec("red blue yellow green");
    document.write(result);
  }
  while(result!=null)//eeeeenull
</script>

compile

  • 既能够转变检索形式,也能够增加或删除第二个参数
<script>
  var patt1 = new RegExp("e");
  document.write(patt1.test("blue"));//true
  patt1.compile("d");
  document.write(patt1.test("blue"));//false
  }
</script>

支撑正则表达式的字符串对象要领

search

  • 检索与正则表达式相婚配的值
<script>
  var str="Visit W3School!"
  document.write(str.search(/W3School/))//6
  document.write(str.search(/w3school/))//-1
  document.write(str.search(/w3school/i))//6
</script>

match

  • 找到一个或多个正则表达式的婚配。该要领相似 indexOf() 和 lastIndexOf(),然则它返回指定的值,而不是字符串的位置
<script>
  var str="Hello world!"
  document.write(str.match("world"))//world
  document.write(str.match("World"))//null
  document.write(str.match("worlld"))//null
  document.write(str.match("world!"))//world!
</script>

replace

  • 用于在字符串中,用一些字符替代另一些字符,或替代一个与正则表达式婚配的子串。
<script>
  var str="Visit Microsoft!"
  document.write(str.replace(/Microsoft/, "W3School"))
  //Visit W3School
  var str="Welcome to Microsoft! "
  str=str + "lala"
  str=str + "blue"
  document.write(str.replace(/Microsoft/g, "W3School"))
  //Welcome to Microsoft!lalablue
</script>

split

  • 把字符串分割为字符串数组。
<script>
  var str="How are you doing today?"
  document.write(str.split(" "))
  //How,are,you,doing,today?
  document.write(str.split(""))
  //H,o,w, ,a,r,e, ,y,o,u, ,d,o,i,n,g, ,t,o,d,a,y,?
  document.write(str.split(" ",3))
  //How,are,you
</script>
    原文作者:神膘护体小月半
    原文地址: https://segmentfault.com/a/1190000016053722
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞