JavaScript正则表达式



正则表达式是构成搜索模式的字符序列.

搜索模式可用于文本搜索和文本替换操作.


正则表达式是什么?

正则表达式是构成搜索模式的字符序列.

当您在文本中搜索数据时,您可以使用此搜索模式来描述您正在搜索的内容.

正则表达式可以是单个字符,也可以是更复杂的模式.

正则表达式可以用来执行所有类型的文本搜索和文本替换操作.

语法

/pattern/modifiers;
var patt = /codingdict/i;

实例解析:

/codingdict/i 是一个正则表达式。

codingdict 是一个模式 (用来搜索).

i 是一个修饰符 (修饰搜索为不区分大小写).


使用字符串方法

在JavaScript中,正则表达式有两个常用的字符串方法: search() 和 replace().

search() 方法使用表达式搜索匹配,并返回匹配的位置.

replace() 方法返回替换模式已修改的字符串.


在字符串的search()方法中使用正则表达式

使用正则表达式不区分大小写搜索字符串中的“codingdict”:

var str = "Visit codingdict";
var n = str.search(/codingdict/i);

让我试试


使用字符串的search()方法

search 方法也将接受字符串作为搜索参数. 符串参数将转换为正则表达式:

在字符串里搜索"编程字典":

var str = "访问编程字典!";
var n = str.search("编程字典");

让我试试


在字符串的replace()方法中使用正则表达式

使用不区分大小写的正则表达式和字符串 编程字典 取代 codingdict:

var str = document.getElementById("demo").innerHTML;
var txt = str.replace(/codingdict.com/i,"编程字典");

让我试试

在replace()方法中使用字符串

replace() 方法也将接受字符串作为搜索参数:

var str = document.getElementById("demo").innerHTML;
var txt = str.replace("编程字典","www.codingdict.com");

让我试试


你注意到了吗?

正则表达式参数(而不是字符串参数)可以用于上面的方法. 正则表达式可以使您的搜索更加强大(例如不区分大小写).


正则表达式修饰符

修饰符可用于执行不区分大小写的全局搜索:

修饰符 描述
i 执行区分大小写匹配
g 执行全局匹配(查找所有匹配,而不是在第一次匹配后停止)
m 执行多行匹配

正则表达式模式

括号用于查找一系列字符:

表达式 描述
[abc] 找到括号之间的任何字符
[0-9] 找到括号之间的数字
(x|y) 找到任何与|分隔的选项

元字符是有特殊意义的字符:

元字符 描述
\d 找一个数字
\s 找到一个空白字符
\b 在单词的开头或结尾找到一个匹配
\uxxxx 找到的进制数xxxx指定的Unicode字符

数量词定义数量:

数量词 描述
n+ 匹配至少包含一个字符串 n
n* 匹配任何包含零个或多个字符串 n
n? 匹配包含零或一个任何字符串 n

使用RegExp对象

在JavaScript中, RegExp 对象是具有预定义属性和方法的正则表达式对象.

Using test()

test() 方法是RegExp 表达式方法.

它搜索一个字符串的模式,根据结果,并返回true或false.

下面的示例搜索字符的字符串 "e":

var patt = /e/;
patt.test("The best things in life are free!");

让我试试


使用 exec()

exec() 方法是一个正则表达式的表示方法.

它搜索指定模式的字符串,并返回所找到的文本.

如果找不到匹配,则返回null。.

下面的示例搜索字符串中的字符 "e":

/e/.exec("The best things in life are free!");

完整的正则表达式参考

完整的正则表达式参考, 请访问 完整的正则表达式参考.

参考包含所有正则表达式的属性和方法的说明和例子.