JavaScript - 正则表达式

前两天饿了么口试的时刻问到了正则,这里有时间简朴总结一下。(那天赋晓得许多大大都是硬着头皮看着API怼正则的 – -)

RegExp对象

  • JavaScript经由过程内置对象RegExp支撑正则表达式

RegExp对象实例化

  • 字面量

var pattern = /\bis\b/g;
  • 组织函数

var pattern = new RegExp('\\bis\\b', 'g');

修饰符

  • g: global,全文搜刮,假如不增加,搜刮到第一个婚配就住手。

  • i: ignore case,疏忽大小写,默许大小写敏感。

  • m: mutiple lines,多行搜刮。

元字符

  • 正则表达式有两种基础字符范例构成。

    • 原义文本字符

    • 元字符

  • 元字符是在正则表达式中你有特别寄义的非字母字符。

  • * + ? $ ^ . | \ ( ) { } [ ]

字符类

  • 能够运用元字符[]来构建一个简朴的类。

  • 所谓类是指相符某些特性的对象,泛指,而不是特指某个字符。

  • 表达式[abc]把字符a、b、c归为一类,表达式能够婚配这类字符。(相当于或)

字符类取反

  • 运用^建立反向类/负向类。

  • 反向类的内容是不属于某类的内容。

  • 表达式[^abc]示意不是a或b或c的内容。

局限类

  • 能够运用[a-z]示意从a-z的恣意字符。(闭区间)

  • []内构成的类内部是能够连写的[a-zA-Z]。

预定义类

字符寄义
.除了回车符和换行符以外的一切字符
d数字字符
D非数字字符
s空白符
S非空白符
w单词字符(字母、数字下划线)
W非单词字符

边境

字符寄义
^以xxx最先
$以xxx完毕
b单词边境
B非单词边境

量词

字符寄义
?涌现0次或一次
+涌现1次或屡次
*涌现0次或屡次
{n}涌现n次
{n,m}涌现n-m次
{n,}最少涌现n次

JS正则贪欲形式与非贪欲形式

非贪欲形式

  • 让正则表达式尽量少的婚配,也就是说一旦胜利婚配不再继承尝试就黑白贪欲形式。

  • 做法是在量词背面加上?

‘123456789’.match(/d{3,5}?/g);

分组

  • 运用()能够到达分组的功能使量词作用于分组

运用|能够到达或的效果。

对象属性

  • golbal:会否全文搜刮

  • ignore case:是不是大小写敏感

  • multiline:多行搜刮

  • lastIndex:是当前表达式婚配内容的末了一个字符的下一个位置

  • source:正则表达式的文本字符串

RegExp.prototype.test(str)

  • 用于测试字符串参数中是不是存在婚配正则表达式形式的字符串

  • 假如存在返回true,不然返回false

RegExp.prototype.exec(str)

  • exec() 要领在一个指定字符串中实行一个搜刮婚配。返回一个效果数组或 null。

    原文作者:玩弄心里的鬼
    原文地址: https://segmentfault.com/a/1190000009432190
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞