js中的正则表达式

正则表达式是什么?

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

如想进一步了解可以去查看菜鸟教程上的教程哦!正则表达式-菜鸟教程
如有错误请指正!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值