浅谈javaScript之正则表达式

JavaScript RegExp对象

RegExp:正则表达式的简写


什么是RegExp

正则表达式描述了字符的模式对象
当检索某个文本时,可以使用一种模式来描述要检索的内容.RegExp就是这种模式
简单的模式可以是一个单独的字符
更复杂的模式包括了更多的字符,可以用于解析、格式检查、替换等等
可以规定字符串中的检索位置,以及要检索的字符类型等等


语法

var patt=new RegExp(pattern,modifiers)
//或更简单的方法
var patt=/pattern/modifiers

模式描述了一个表达式模型
修饰符描述了检索是否全局,区分大小写等
当使用构造函数创造正则对象时,需要常规的字符转义规则(在前面加反斜杠)

var re = new RegExp("\\w+")
var re = /\w+/

RegExp修饰符
修饰符用于执行不区分大小写和全文搜索
i - 修饰符是用来执行不区分大小写的匹配
g - 修饰符用来执行全文的搜索(而不是在第一个找到就停止,而是找到所有的匹配)

var str = "heLlo wOrld"
str.match(/l/g)//["l","l"]
str.match(/l/i)//["L"]
str.match(/l/gi)//["L","l","l"]

修饰符

RegExp修饰符:

修饰符 描述
i 执行对大小写不敏感的匹配
g 执行全局匹配(查找所有匹配而非在匹配到第一个元素时停止)
m 进行多行匹配

方括号

方括号用于查找某个范围内的字符:

表达式 描述
[abc] 查找方括号之间的任何字符
[^abc] 查找任何不在方括号之间的字符
[0-9] 查找任何从0至9的数字
[a-z] 查找任何从小写a到小写z的字符
[A-Z] 查找任何从大写A到大写Z的字符
[A-z] 查找任何从大写A到小写z的字符
[str] 查找给定集合内的任何字符
[^str] 查找除给定集合内的任何字符

元字符

元字符是拥有特殊含义的字符:

元字符 描述
. 查找单个字符,除了换行和结束符
\w 查找单词字符
\W 查找非单词字符
\d 查找数字
\D 查找非数字字符
\s 查找空白字符
\S 查找非空白字符
\b 匹配单词边界
\B 匹配非单词边界
\0 查找NUL字符
\n 查找换行符
\f 查找换页符
\r 查找换车符
\t 查找制表符
\v 查找垂直制表符
\xxx 查找以八进制数xxx规定的字符
\xdd 查找以十六进制数dd规定的字符
\uxxxx 查找以十六进制数xxxx规定的Unicode字符

量词

量词 描述
n+ 匹配任何包含至少一个n的字符串
n* 匹配任何包含零个或者多个n的字符串
n? 匹配任何包含零个或者一个n的字符串
n{X} 匹配包含X个n的序列的字符串
n{X,Y} 匹配包含X个或者Y个n的序列字符串
n{X,} 匹配包含至少X个n的序列的字符串
n$ 匹配任何结尾为n的字符串
^n 匹配任何开头为 n 的字符串
?=n 匹配任何其后紧接指定字符串 n 的字符串
?!n 匹配任何其后没有紧接指定字符串 n 的字符串

RegExp对象方法

方法 描述
compile 编译正则表达式
exec 检索字符串中指定的值,返回找到的值,并确定其位置
test 检索字符串中指定的值,返回true或false

支持正则表达式的Strng对象的方法

方法 描述
search() 检索与正则表达式想匹配的值
match() 找到一个或多个正则表达式的匹配
replace() 替换与正则表达式匹配的子串
split() 把字符串分割为字符串数组

你可能感兴趣的:(浅谈javaScript之正则表达式)