js正则表达式

元字符

正则表达式让人望而却步以一个重要原因就是转义字符太多了,组合非常多,但是正则表达式的元字符(在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符)并不多。

( [ { \ ^ $ | ) ? * + .
特殊字符
字符 含义
\t 水平制表符
\r 回车符
\n 换行符
\f 换页符
\v 垂直制表符
\0 空字符

字符类

一般情况下正则表达式一个字符(转义字符算一个)对应字符串一个字符,一般情况下正则表达式一个字符(转义字符算一个)对应字符串一个字符。但是我们可以使用元字符[]来构建一个简单的类, 比如[abcd]代表一个字符,这个字符可以是 abcd四个字符中的任意一个。

表示范围

匹配数字0-9:[0-9].
匹配字母:[a-zA-Z].

取反

元字符[]组合可以创建一个类,我们还可以使用元字符^创建反向类/负向类,反向类的意思是不属于XXX类的内容,表达式[^abc] 表示一个不是字符a或b或c的字符。

预定义类

字符 等价类 含义
. [^\r\n] 除了回车符和换行符外所有字符
\d [0-9] 数字字符
\D [^0-9] 非数字字符
\s [\t\n\x0B\f\r] 空白符
\S [^\t\n\x0B\f\r] 非空白符
\w [a-zA-Z_0-9] 单词字符,字母、数字下划线
\W [^a-zA-Z_0-9] 非单词字符

边界

正则表达式还提供了几个常用的边界匹配字符。

字符 含义
^ 以xxx开头
$ 以xxx结尾
\b 单词边界
\B 非单词边界

量词

字符 含义
? 出现零次或一次(最多出现一次)
+ 出现一次或多次(至少出现一次)
* 出现零次或多次(任意次)
{n} 出现n次
{n,m} 出现n到m次
{n,} 至少出现n次

修饰符

  • g:global,全文搜索,不添加的话搜索到第一个结果停止搜索
  • i:ingore case ,忽略大小写,默认大小写敏感
  • m:multiple lines 多行搜索

分组

希望一个字符作为一个整体搜索,加上()。

var reg1 = /hello|world/ 
//等同于
var reg2 = /(hello)|(world)/
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 正则表达式功能: 测试字符串的某个模式。例如对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信...
    DecadeHeart阅读 3,728评论 0 1
  • 一、 什么是正则表达式 1、 概述 以上代码中,在判断时,用到了 标准库中 string 对象的indexOf()...
    宠辱不惊丶岁月静好阅读 3,576评论 0 1
  • @(javascript)[js正则表达式] [toc] JS正则表达式 正则表达式一直是一个令人头疼但却又是十分...
    踏浪free阅读 3,118评论 0 1
  • 目录 第一章 正则表达式字符匹配攻略 第二章 正则表达式位置匹配攻略 第三章 正则表达式括号的作用 第四章 正则表...
    Albert_w3阅读 3,153评论 0 2
  • JavaScript-正则表达式 记录这篇高大上的正则表达式,其实接触很多,但是实际项目里面感觉运用的比较少呀,用...
    明明三省阅读 8,230评论 0 24