正则表达式是什么?
JavaScript 中使用正则表达式(regular expression)可以进行字符串匹配和替换等操作。正则表达式是一种特殊的语法规则,用于描述字符串的模式。正则表达式在 JavaScript 中使用 RegExp 对象表示。正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为"元字符")组成的文字模式。模式描述在搜索文本时要匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
用法
在JavaScript中,正则表达式需要用/ /将其包裹起来,如以下的例子
//匹配邮箱的例子
const emailRegex = /^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$/
const email = 'example@email.com'
if (emailRegex.test(email)) {
console.log(`${email} 是一个有效的邮箱地址`)
}
在以上例子中,正则表达式的test方法用于检测一个字符串是否匹配某个正则表达式。该方法返回一个布尔值,如果字符串与正则表达式匹配,返回true;否则返回false。
使用总结
以下列出了一些常用正则表达式的使用总结:
1.匹配基本字符
-
使用普通字符匹配:普通字符(如字母、数字、符号)在正则表达式中表示自身,例如匹配 “runoob”:/runoob/
-
使用元字符 . 匹配任意字符:. 表示匹配任意单个字符,例如匹配 “cat” 或 “bat”:/c.t/
2.匹配字符集合
- 使用方括号 [] 表示字符集合,匹配集合中的任意字符,例如匹配 “cat”、“bat” 或 “hat”:/[cbh]at/。
- 使用连字符 - 表示字符范围:在字符集合中使用连字符 - 表示匹配字符范围,例如匹配 “a” 到 “z” 的小写字母:/[a-z]/
3.匹配重复和数量
- 使用 * 匹配零个或多个:* 表示匹配前面的模式零次或多次,例如匹配 “caat”、“ct” 或 “cat”:/ca*t/。
- 使用 + 匹配一个或多个:+ 表示匹配前面的模式至少一次或多次,例如匹配 “cat”、“caat”、“caaat” 等:/ca+t/。
- 使用 ? 匹配零个或一个:? 表示匹配前面的模式零次或一次,例如匹配 “ct” 或 “cat”:/ca?t/
- 使用花括号 {n} 匹配固定数量:使用花括号 {n} 表示匹配前面的模式恰好 n 次,例如匹配 “cat”、“caat” 或 “caaat”:/ca{2}t/。
4.使用特殊字符和转义
- 转义特殊字符:使用反斜杠 \ 来转义特殊字符,例如匹配 “2+2=4”:/2+2=4/。
- 匹配边界和位置:使用特殊字符 ^ 和 $ 分别表示行的开头和结尾,例如匹配以 “hello” 开头的字符串:/^hello/。
5.使用捕获组
- 使用括号 () 创建捕获组:使用括号 () 将一部分正则表达式模式组合成一个捕获组,可以提取或分组匹配的内容,例如提取日期中的年份:/(\d{4})-\d{2}-\d{2}/。
6.使用字符转义
- 使用反斜杠 \ 转义特殊字符:对于正则表达式中的特殊字符,如 *、+、? 等,使用反斜杠 \ 进行转义,例如匹配包含字面量星号的字符串:/*/
7.使用字符类别
- 使用预定义的字符类别:正则表达式提供了一些预定义的字符类别,例如 \d 匹配任意数字字符,\w 匹配任意字母、数字或下划线字符,\s 匹配任意空白字符等。(在正则表达式中,\b表示单词边界,用于匹配单词的开始或结束位置。)
8.使用逻辑操作符
- 使用 | 进行逻辑或操作:| 用于表示逻辑或操作,可以匹配多个模式中的任意一个,例如匹配 “cat” 或"dog":/(cat|dog)/
9.使用反向引用
- 使用 \n 进行反向引用:在正则表达式中,\n(其中n是一个整数)
可以用来引用前面捕获组中匹配的内容,例如匹配重复的单词
var reg=/\b(\w+)\b\s+\1\b/
//可以匹配的结果:cat cat 456;dog dog AC;
//不可以匹配的结果:hot 456 hot 333
10.使用修饰符
- 使用修饰符改变匹配行为:正则表达式支持一些修饰符,如 i 用于进行不区分大小写的匹配,g 用于全局匹配,m 用于多行匹配等。
//匹配hello时不区分大小写
var reg=/hello/i
//可以匹配Hello;HELLO;hello
如想进一步了解可以去查看菜鸟教程上的教程哦!正则表达式-菜鸟教程
如有错误请指正!