【浅谈JavaScript正则表达式】(上)

274 阅读2分钟

这是我参与更文挑战的第18天,活动详情查看: 更文挑战

什么是正则表达式?

正则表达式(Regular Expression简称RegExp)是一种描述字符串结构的语法规则。 匹配一系列符合某个句法规则的字符串搜索模式。搜索模式可用于文本搜索和文本替换。

常用的正则表达式有两种:

一种是POSIX规范兼容的正则表达式,用于确保操作系统之间的可移植性。
一种是Perl正则表达式,JavaScript中就是基于Perl的正则表达式。

如何使用正则表达式

正则表达式语法

/正则表达式主体/修饰符(可选) 来看个例子:

<script>
        var reg = /gW/i;
        // gW 是正则表达式主体,用于检索
        //i   是修饰符,表示忽略大小写
    </script>

正则表达式修饰符

g   用在目标字符串中实现全局匹配
i   忽略大小写
m   实现多行匹配
u   以Unicode编码执行正则表达式
y   粘性匹配,仅匹配目标字符串中此正则表达式的lastIndex属性指示的索引

正则表达式方法

正则表达式可以使用RegExp对象提供的exec()和String提供的match()方法进行搜索匹配。

exec方法

exec方法用于在目标字符串中搜索匹配,返回一个数组,一次仅返回有个匹配结果

<script>
        var str = 'sfvnslgkslgscutoscwt';
        var reg = /sc/i;//定义正则表达式
        console.log(reg.exec(str));
    </script>

image.png 返回数组的第一个元素是匹配到的字符串,第二个元素是下标,第三个元素是目标字符串。

match方法

match方法除了可以在字符串中检索到符合条件的值,还可以在目标字符串中根据正则表达式匹配出所有符合要求的内容

<script>
        var str = 'sCfvnslgkslgScutoscwt';
        var reg = /sc/gi;//定义正则表达式
        var reg2 = /^sc/gi;//^ 表示匹配字符串开始的位置
        var reg3 = /sc$/gi;//$ 表示匹配字符串结束的位置
        console.log(str.match(reg));
        console.log(str.match(reg2));
        console.log(str.match(reg3));
    </script>

image.png 这里的开始和结束的位置表示的是以sc为开始的字符串,和以sc为结尾的字符串。大家可以细细体会一下。