正则表达式?
什么是正则表达式:
正则表达式描述了字符串的”构成模式“,经常被用于检查字符串是否符合预定的格式要求
创建正则表达式:
- 使用 /^\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');