JavaScript中常用正则表达式知识汇总

131 阅读2分钟

什么是正则表达式

正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否包含有某种子串、将匹配的子串替换或者从某个子串中取出符合某个条件的子串等

创建正则表达式

  • 字面量创建--//是JavaScript中的正则表达式的字面量类似于数组的[]对象的{}
//表示以十个数字开头的字符串
var reg = /^\d*10/
  • 构造函数创建--由于使用构造函数创建 ,传入的是字符串,所以使用'\'时,需要使用'\\',同时如果正则表达式中含有变量名,只能使用构造函数创建进行字符串的拼接
//表示以10个数字结尾的字符串
var reg = new RegExp('\\d*10$')

正则表达式常用符号

  • 方括号[] 表示匹配的范围,如[abc]表示查找a、b、c字符都可以匹配;如果中间用-符号连接,表示前后之间的字符匹配,如:[1-9],即1到9的数字都可匹配;如果有多区间,直接写就好,如[0-9a-zA-Z]

  • 大括号{} 表示匹配的次数,里面可以为一个整数,表示具体多少次,如:'0{n}',表示匹配0出现n次的字符串;也可以为两个整数,使用逗号连接,表示一个范围,如:0{n,m},表示0出现n次到m次之间都可以匹配

  • 其他表示匹配次数的字符 符号*+也表示限定匹配次数,其中*表示前面字符串出现至少出现0次匹配,+号表示至少出现1次匹配,表示出现0次或者1次匹配

  • 特殊字符 ^符号指定必须以后面的字符串开始,$符号指定以前面的字符串结束,|符号表示或者,只要满足其中一项就可以匹配,()表示一个子表达式的开始和结束位置,常常和|配合使用

  • 常见转义字符 \w表示匹配字母、数字、下划线,\W表示非字母、数字、下换线,\d表示匹配数字,\D表示匹配非数字

  • 修饰符 在表达式后面加i表示匹配不分大小写,加g表示查找所有匹配项、m表示多行匹配

正则表达式常见方法

  • test() 该方法用于测试字符串与正则表达式是否匹配,参数只有一个,为判断的字符串,返回值表示是否匹配,为布尔值。
  • complie() 该方法的作用是能够对正则表达式进行编译,被编译过的正则在使用的时候效率会更高,适合于对一个正则多次调用的情况下,如果对一个正则只使用一两次,那么该方法没有特别显著的效应。参数为一个正则表达式
  • exec() 该方法用于提取符合正则表达式的字符串返回值是数组,数组中索引值为0的内容是匹配的字符串,后面接的是正则表达式中子分组匹配结果,当只有指定为全局匹配时,才会依次查找,否则返回都是相同数组