JS正则表达式学习总结

正则表达式是描述字符模式的对象。正则表达式直接量定义为包含在一对斜杠(/)之间的字符。例:/s$/ –匹配所有以s结尾的字符串。
正则表达式中的所有字母和数字都是按照字面含义进行匹配的。JS正则表达式语法也支持非字母的字符匹配。这些字符需要通过反斜线(\)作为前缀进行转义。
比如,\n用来匹配换行符。
正则表达式中的直接量字符

字符匹配
字母和数字字符自身
\oNUL字符(\u0000)
\t制表符(\u0009)
\n换行符(\u000A)
\v垂直制表符(\u000B)
\f换页符(\u000C)
\r回车符(\u000D)
\xnn由十六进制数nn指定的拉丁字符,例如,\x0A等价于\n
\uxxx由十六进制数nn指定的Unicode字符,例如,\x0009等价于\n
\cX控制字符^X,例如,\cJ等价于换行符\n

在正则表达式中,许多标点符号具有特殊含义

字符含义
字母和数字字符自身
*匹配任意次
+匹配一次或多次
匹配0次或多次
$以……为结尾
^以……为开头)
.除换行符和其他Unicode行终止符外的任意字符
()分组
(?:)忽略分组

正则表达式的字符类

字符匹配
【……】方括号内的任意字符
【^……】不在方括号内的任意字符
\w单词字符(字母数字和下划线)等价于【a-zA-Z0-9】
\W除单词字符(字母数字和下划线)之外等价于【^a-zA-Z0-9】
\s空白
\S非空白
\d数字
\D非数字
\b以……边界
\B非边界

量词

字符匹配
{n,m}匹配前一项至少n次最多m次
{n,}匹配前一项至少n次
{n}匹配前一项n次
*匹配任意次
+匹配一次或多次
匹配0次或多次

贪婪模式:正在表达式默认的,尽可能多的匹配次数,直到匹配失败。
非贪婪模式:尽可能少的匹配次数。实现方式在量词后加?
例如: /\d{3,5}/g 贪婪模式
/\d{3,5}?/g 非贪婪模式
上面出现的g表示全文搜索

字符匹配
g全文搜索
i忽略大小写
m多行搜索
$反向引用*

反向引用:例如,/(\d)\w/ $1就可以表示(\d)所匹配到的内容
示例:2017/03/15 使用/(\d{4})/(\d{2})/(\d{2})/ 匹配到前面的日期,那么 $3-$2-$1的显示结果就是 15-03-2017

前瞻和后顾:特别强调JS正则表达式不支持后顾
前瞻和后顾就是判断匹配字符其前后条件是否满足。正则表达式从文本头部向尾部解析,所以文本尾部为前。

正则表达式的对象属性 : g、i、m之前介绍过了
lastIndex:当前表达式匹配内容的最后一个字符的下一个位置。
source:正则表达式的文本字符串,即查看正则表达式的文本内容。
test(str):测试内容是否符合正则表达式。
exec(str):对字符串进行搜索,并将更新全局RegExp对象的属性以及反映匹配结果。
以上内容为学习正则表达式的知识点总结,并没有用示例讲解,详细内容可以参考这里

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值