Javascript正则表达式详解(一)

简介

先来一段引见:

正则表达式,又称正规示意法、通例示意法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个观点。正则表达式运用单个字符串来形貌、婚配一系列相符某个句法划定规矩的字符串。在许多文本编辑器里,正则表达式通常被用来检索、替代那些相符某个形式的文本。

简朴说就是:

它是对字符串实行形式婚配的壮大东西。

Javascript中的正则表达式相较于其他言语来讲完成的并不完全,但仍然是非常壮大的,能够协助我们完成绝大多数形式婚配使命。下面将一步一步细致引见。

定义

在Javascript中,定义一个正则表达式有两种体式格局,一种是直接量,另一种是运用组织函数。

直接量

Javascript能够运用相似Perl的语法定义一个正则表达式

var r = /pattern/flags;

个中pattern是任何简朴或庞杂的正则表达式,flags是用以表达正则表达式行动的一个或许多个标识。

flags

  • g 示意全局(global)形式,即形式将被应用于一切字符串
  • i 示意不辨别大小写
  • m 多行形式

来看几个例子

var r1 = /at/g; // 婚配字符串中一切'at'的实例

var r2 = /.ho/gi; // 婚配以'ho'末端的三个字符的组合,不辨别大小写

运用组织函数

Javascript中正则表达式的组织函数为RegExp,即Regular Expression的缩写,它吸收两个参数,第一个为要婚配的字符串形式,另一个是可选的标识位。

如:

var r = new RegExp('hello', 'g'); // 婚配字符串中一切的'hello'实例

有一点肯定要注意,第一个参数是一个字符串,而不是正则表达式的直接量。

元字符

在正则表达式的形式中,有一些字符是有特别寄义的,被称为元字符,假如要婚配元字符,则必需对其举行转义。

这些元字符分别是:

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

比方:

// 假如要婚配'/user/name'这个字符串,正则表达式须要如许
var r1 = /\/user\/name/;

var r2 = /\.ho/; // 婚配'.ho'这个字符串

关于运用组织函数定义

假如运用组织函数定义正则表达式,因为组织函数的第一个参数必需是一个字符串,在婚配元字符时,这将会致使两重转义。

比方:

var r1 = new RegExp('\/user', 'g'); // wrong

// 因为\在字符串中须要转义为\\,所以,假如要婚配/user,正则表达式须要写为
var r1 = new RegExp('\\/user', 'g');

一切元字符都须要举行两重转义

别的,另有一些预定义的特别字符也被称为元字符

元字符形貌
.查找单个字符,除了换行和行结束符。
\w查找单词字符。
\W查找非单词字符。
\d查找数字。
\D查找非数字字符。
\s查找空缺字符。
\S查找非空缺字符。
\b婚配单词边境。
\B婚配非单词边境。
\0查找 NUL 字符。
\n查找换行符。
\f查找换页符。
\r查找回车符。
\t查找制表符。
\v查找垂直制表符。
\xxx查找以八进制数 xxx 划定的字符。
\xdd查找以十六进制数 dd 划定的字符。
\uxxxx查找以十六进制数 xxxx 划定的 Unicode 字符。

有一点须要特别注意:不论一个元字符代表若干种寄义,单个元字符一直只婚配单个字符

元字符实在没必要锐意花时间去影象,等了解了悉数的正则表达式运用方法以后,天然就晓得哪些字符是有特别寄义的,也就晓得了哪些时刻须要转义了。

下面将连续引见正则表达式的运用方法。

Javascript正则表达式详解(二)

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