javaScript正则表达式的使用


前言

有时候合理利用正则表达式可以极大地减少重复代码的使用,通过正则表达式可以一次性解决代码替换的问题。

一、正则表达式是什么?

正则表达式是一种描述文本模式的方法,用于在文本中进行搜索、匹配和替换操作。它们是一种通用的语言,可以用于任何类型的文本,包括电子邮件、网页和程序代码等。正则表达式可以用于验证输入的数据是否符合特定的格式,例如电子邮件地址、电话号码或日期格式等。在编程语言中,正则表达式通常被用作字符串处理函数的参数,以实现高级的文本操作。

二、使用步骤

1.基本的正则表达式

代码如下(示例):

JavaScript中常见的正则表达式有:

1.匹配数字:`/^\d+$/`
- "^"代表开头,"$"代表结尾
- "\d"代表数字
- "+"代表至少一个数字

2.匹配邮箱:`/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/`
- "@"代表邮箱中间的符号
- 一般邮箱由数字、字母、下划线、中划线组成
- "."代表域名后缀,可能会有多个域名后缀,如.com.cn等

3.匹配手机号:`/^1[3-9]\d{9}$/`
-1开头
- 第二位必须在39之间
- "\d{9}"代表后面跟9个数字

4.匹配URL:`/^[a-zA-Z]+:\/\/[^\s]+$/`
- "://"是协议的分隔符
- "[^\s]+"代表一个或多个非空白字符

5.匹配日期:`/^(19\d{2}|20[0-9]{2})-(0?[1-9]|1[012])-(0?[1-9]|[12][0-9]|3[01])$/`
- 年份有1920开头的,有4- 月份有0112
- 日有0131,注意二月份的天数是要看年份是否为闰年的。

6.匹配IP地址:`/^(25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3}$/`
- IP地址由40-255的数字组成,每个数字以"."分隔开。

2.基本类型

代码如下(示例):

这里列出常见的正则表达式类型及其含义:

1. 基本字符匹配:
- `.`:匹配任意单个字符
- `[ ]`:匹配其中任意一个字符
- `[^]`:匹配不在其中的任意一个字符
- `\d`:匹配数字,等价于`[0-9]`
- `\D`:匹配非数字,等价于`[^0-9]`
- `\w`:匹配字母、数字、下划线,等价于`[a-zA-Z0-9_]`
- `\W`:匹配非字母、数字、下划线,等价于`[^a-zA-Z0-9_]`
- `\s`:匹配空白字符,包括空格、制表符、换行符等
- `\S`:匹配非空白字符

2. 量词匹配:
- `*`:匹配前面的字符零次或多次
- `+`:匹配前面的字符一次或多次
- `?`:匹配前面的字符零次或一次
- `{n}`:匹配前面的字符恰好n次
- `{n,}`:匹配前面的字符至少n次
- `{n,m}`:匹配前面的字符至少n次,最多m次

3. 边界匹配:
- `^`:匹配字符串的开头
- `$`:匹配字符串的结尾
- `\b`:匹配单词边界
- `\B`:匹配非单词边界

4. 分组匹配:
- `()`:将其中的字符分为一组,可以在之后的匹配中引用该分组
- `|`:表示或,匹配其中的任何一个分组

5. 特殊字符匹配:
- `.`:表示任意单个字符
- `\`:转义字符,可以将特殊字符变成字面量字符进行匹配,例如`\.`可以匹配真正的点字符

以上是常见的正则表达式类型,不同编程语言或工具对正则表达式的实现可能略有不同,具体使用时需查看对应文档。

三、实战案例

1.使用正则表达式替换字符串中的特殊字符

将字符串中的 &、<、>、"(双引号)和 '(单引号)转换为相应的 HTML 字符实体。
function convertHTML(str) {
  let strRegex1=/\&/g;
  let strRegex2=/\</g;
  let strRegex3=/\>/g;
  let strRegex4=/[\\"]/g;
  let strRegex5=/[\\']/g;
  return str.replace(strRegex1,"&amp;")
      .replace(strRegex2,"&lt;")
      .replace(strRegex3,"&gt;")
      .replace(strRegex4,"&quot;")
      .replace(strRegex5,"&apos;")
}

convertHTML("Dolce & Gabbana");
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值