正则表达式?

什么是正则表达式:

正则表达式描述了字符串的”构成模式“,经常被用于检查字符串是否符合预定的格式要求

创建正则表达式:

  • 使用 /^\d{6}$/ 的语法形式
  • 使用 new RegExp('^\\d')
  • 使用 typeof 检查正则表达式的类型为 object

元字符:

  • \d     匹配一个数字
  • \D    匹配一个非数字字符
  • \w    匹配一个单字字符(字母、数字、或者下划线)
  • \W   匹配一个非单字字符
  • \s     匹配一个空白字符,包括空格、制表符和换行符 
  • .       任意字符
  • ^      匹配开头
  • $      匹配结尾

注意:使用new RegExp(),反斜杠要多写一个; 例如:/^\d$/ 和 new RegExp('^\\d$')是相同的意思

字符的转义:

在特殊字符之前的反斜杠 \ 表示下一个字符不是特殊字符,应该按照字面理解

/^.$/      检查字符串是不是任意字符

/^\.$/     检查字符串是不是一个点

/^\\$\     检查字符串是不是一个反斜杠

正则表达式”按位“描述规则:

”按位“描述规则,是指它是一位一位的描述字符串的构成形式

例如检查字符串:以字母m开头,然后是3个数字,最后以字母n结尾   /^m\d\d\dn$/  或者  /^m\d{3}n$/

方括号表示法:

使用方括号,例如[xyz]:可以创建一个字符集合,表示匹配方括号中的任意字符

某学校的学号规定:第一位是一个字母,b为本科生,y为研究生,后面7位数字   /^[by]\d{7}$/

可以使用 - 来表示一个字符范围^表示否定

  • \d           [0-9 ]               数字
  • \D          [^0-9]             非数字 
  • \w     [A-Za-z0-9_]     单字字符
  • \W    [^A-Za-z0-9_]   非单字字符

量词:

  • *          匹配前面一个表达式0次或者多次,等价于{0,}
  • +         匹配前面一个表达式1次或者多次,等价于{1,}
  • ?         匹配前面一个表达式0次或者1次,等价于{0,1}
  • {n}       n是一个正整数,匹配前面一个字符刚好出现n次
  • {n,}      n是一个正整数,匹配前一个字符至少n次
  • {n,m}   n和m都是整数,匹配前面的字符至少n次,最多m次

正则表达式的相关方法:

test(): 测试某字符串是否匹配正则表达式,返回布尔值

exec(): 根据正则表达式,在字符串中进行查找,返回结果数组或者null

字符串中可以使用正则表达式的方法:

search(): 在字符串中根据正则表达式进行查找匹配,返回首次匹配到的位置索引,测试不到则返回-1

match(): 在字符串中根据正则表达式进行查找匹配,返回一个数组,找不到则返回null

replace(): 使用替换字符串替换掉匹配到的子字符串,可以使用正则表达式

split(): 分隔字符串为数组

修饰符:

i:不区分大小写搜索

g:全局搜索

var re = /m/gi

var re = new RegExp('m','gi');

posted @ 2022-05-12 20:03  Du9191  阅读(82)  评论(0编辑  收藏  举报