日期:2014-05-16  浏览次数:20399 次

JS正则表达式学习笔记

正则表达式:

显示构造函数,语法为:new RegExp("pattern"[,"flags"])
隐示构造函数,采用纯粹的文本格式:/pattern/[flags]

===================
全局flags:

g用作全局标志
i用作忽略大小写标志
m用作多行标志,即多行匹配

===================
RegExp对象的属性:

index
input (简写:$_)
lastIndex
lastMatch (简写:$&)
lastParen (简写:$+)
leftContext (简写:$`)
rightContext (简写:$')
$1...$9

====================
RegExp对象的实例属性:

global
ignoreCase
multiline
source

=====================
RegExp对象的方法:

text(str)
exec(str)
compile("pattern"[,"flags"])

======================
string对象中与正则表达式有关的方法:

match(rgExp)
search(rgExp)
replace(rgExp,replaceText)
split([separator[,limit]])


============================

元字符从功能上分为:限定符、选择匹配符、分组组合和反向引用符、特殊字符、字符匹配符、定位符

=========================

限定符:用于指定其前面的字符或组合项连续出现多少次

{n} 规定前面的元素或组合项连续出现多次
{n,} 规定前面的元素或组合项(至少)连续出现n次
{n,m} 规定前面的元素或组合项至少连续出现n次,至多连续出现m次
+ 规定前面的元素或组合项必须出现一次或连续多次
* 规定前面的元素或组合项可以出现零次或连续多次
? 规定前面的元素或组合项出现零次或一次

=========================

选择匹配符:只有一个"|"字符,用于选择匹配2个选择之中的任意一个

=========================

分组组合和反向引用符:

分组组合就是将正则表达式中的某一部分内容组合起来的符号
(pattern)括号内为一个组合匹配项
(?:pattern)
(?=pattern)
(?!pattern)


反向引用符则是用于匹配前面的分组组合所捕获到的内容的标识符号
\num 匹配编号为num的缓冲区所保存的内容,可以匹配1到99个子匹配捕获的内容


========================
特殊字符:

\转义字符
\xn 匹配ASCII码值等于n的字符,此处的n必须是两位的十六进制数如:\x41匹配字符"A"
\n 反向引用,此处的n是一位入进制数(0-7)
\nm 此处的m和n都是一位入进制数(0-7),反向引用
\nml 匹配ASCII码值等于nml的字符
\un 匹配unicode编码等于n的字符,此处的n必须是一个四位的十六进制数例如:\u00a9匹配版权符号
\cx 匹配x指定的控制字符

\f匹配换页符,等效于\x0c和\cL
\n匹配换行符,等效于\x0a和\cJ
\r匹配回车符,等效于\x0d和\cM
\t匹配制表符,等效于\x09和\cI
\v匹配垂直制表符,等效于\x0b和\cK

======================================

字符匹配符:用于指定该符号部分可以匹配多个字符中的任意一个

[...]匹配方括号中包含的字符集中的任意一个字符
[^...] 匹配方括号中未包含的任何字符
[a-z] 匹配指定范围内的任何字符
[^a-z] 匹配不在指定范围内的任何字符
\d 匹配任意一个数字字符,等效于[0-9]
\D 匹配任意一个非数字字符,等效于[^0-9]
\s 匹配任何空白字符,包括空格、制表符、换页符等,等效于[\f\n\r\t\v]
\S 匹配任何非空白字符,为\s的逆运算,等效于[^\f\n\r\t\v]
\w 匹配任何英文字母和数字类字符以及下划线,等效于[A-Za-z0-9_]
\W 匹配任何非英文字母和数字类字符,但不包括下划线,为\w的逆运算,等效于[^A-Za-z0-9_]
. 匹配除"\n"之外的任何单个字符

================================

定位符:用于规定匹配模式在目标字符串中的出现位置

^ 匹配目标字符串的开始位置
$ 匹配目标字符串的结尾
\b 匹配一个字边界
\B 匹配非字边界

====================================

原义字符:在正则表达式中用到的一些元字符不再表示它原来的字面意义,如果要匹配这些具有特殊意义的元字符的字面意义,必须使用反斜杠(\)将它们转义为原义字符,如"/"用"\/"表示。