Change The World

沉默是一种力量,嘶吼就不是力量了?

0%

javascript正则篇

    俗语说的好 “好记性,不如烂笔头”,所以思来想去还是把这篇博客完成吧!本篇主要介绍javascript的正则表达式,ok 闲话少说,下面就直接开始,GO GO GO …

注:正则表达式就是对字符串的操作


正则表达式语法

    创建正则表达式有两种表达方式,一种就是非常规范的 new 方式,另一种就是Perl风格的表达式。说不上谁好谁坏,各有各的优缺点。 就看您的喜好了🤔

  • new RegExp(pattern,option);

    1
    2
    3
    4
    5
    6
    7
    pattern: 字符串,指定了正则表达式的模式用于匹配字符串
    option: 可选值,主要有 g、i、 m
    ============
    g: 全局匹配
    i: 忽略大小写
    m: 多行匹配
    ============

        一眼看上去很容易理解,构造一个新的实例对象,按照我们正常的思路创建了一个正则表达式。它返回一个新的 RegExp 对象,具有指定的模式和标志,如下:

    1
    var reg = new RegExp(’\\d{2}’,’g’);

    而知:
    优点: 容易理解
    缺点: 😷(机智如我)

注:使用new创建正则表达式时使用元字符如(“\d”)必须要添加转义字符 “\

  • perl 风格表示:

    1
    /pattern/option #没错,就这么多

    再次可而知:
    优点: 写起来非常简单
    缺点: 😵 (已瞎)


修饰符

option 概述
g 全局匹配 (global)
i 匹配时忽略大小写 (ignoreCase)
m 多行匹配 (multiline)

注:m 使用时,只有匹配字符串中包含\n,并且正则表达式中包含^或$行首行尾,m 修饰符才会生效

‌中括号[ ]

表达式 概述
[asd] 匹配中括号中的任意字符
[^asd] 匹配除了中括号中的任意字符
指定范围
[a-z0-9] 匹配a到z,0到9的任意字符
分块匹配
(abc|def|ghi) 匹配指定的选项

‌元字符

‌元字符 概述
. 匹配单个字符,不包括换行和行结束符
\d 匹配数字
\D 匹配非数字字符
\w 匹配单词字符,a-z0-9A-Z以及下划线
\w 匹配非单词字符
\s 匹配空白字符,空格符,制表符,回车符,换行符,垂直换行符, 换页符
\S 匹配非空白字符
\b 匹配单词边界,单词开头或结尾
\B 匹配非单词边界
\0 匹配null字符
\n 匹配换行符
\f 匹配换页符
\r 匹配回车符
\t 匹配制表符
\v 匹配垂直制表符
\xxx 八进制
\xdd 16进制
\uxxxx 16进制规定的Unicode字符

‌量词

‌量词 概述
+ 匹配至少一个[1,+∞]
* 匹配零个或多个[0,+∞]
? 匹配零个或一个[0,1]
{n} 匹配n个的序列字符串
{n,m} 匹配n个的序列字符,最多匹配m次
{n,} 匹配至少n个序列字符串
n$ 匹配任何n字符结尾
^n 匹配任何n字符开头的字符
?=n 匹配任何其后紧接指定字符串n的字符串
?!=n 匹配任何其后没有紧接指定字符串n的字符

regexp方法

‌方法 概述
compile 编译正则表达式
exec 检索指定值返回值及其位置
test 检索指定值,返回TRUE或FALSE

string支持正则的方法

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

示例展示

‌方法 概述
手机号码匹配 /^1[34578]\d{9}\$/ 或 /^1(3|4|5|7|8)\d{9}\$/

😴困了,待续…

不如请我吃根冰棒吧