正则表达式

正则表达式是一种用来描述字符串模式的工具,它可以用来匹配、查找和替换文本中符合某种规则的字符串。

创建正则表达式

在JavaScript中,可以通过两种方式来创建正则表达式:

1. 字面量方式

var reg = /pattern/flags;

其中,pattern是正则表达式的模式,flags是可选的标志,用来指定正则表达式的行为。

2. 构造函数方式

var reg = new RegExp(pattern, flags);

其中,pattern是正则表达式的模式,flags是可选的标志,用来指定正则表达式的行为。

正则表达式模式

正则表达式模式是由普通字符和元字符组成的字符串,普通字符表示它本身,元字符则有特殊含义。

普通字符

  • 普通字符表示它本身,例如:a、b、c、1、2、3等等。

元字符

  • 原子表达式
    • .:匹配除换行符以外的任意字符。
    • \w:匹配任意一个字母、数字或下划线,等价于[A-Za-z0-9_]
    • \W:匹配任意一个非字母、数字或下划线,等价于[^A-Za-z0-9_]
    • \d:匹配任意一个数字,等价于[0-9]
    • \D:匹配任意一个非数字,等价于[^0-9]
    • \s:匹配任意一个空白字符,包括空格、制表符、换页符等。
    • \S:匹配任意一个非空白字符。
    • []:字符集,匹配方括号中的任意一个字符,例如[abc]匹配a、b、c中的任意一个。
    • [^]:否定字符集,匹配除方括号中的任意一个字符以外的任意字符,例如[^abc]匹配除a、b、c以外的任意字符。
  • 重复次数
    • *:匹配前面的字符出现0次或多次,例如a*匹配0个或多个a。
    • +:匹配前面的字符出现1次或多次,例如a+匹配1个或多个a。
    • ?:匹配前面的字符出现0次或1次,例如a?匹配0个或1个a。
    • {n}:匹配前面的字符出现n次,例如a{3}匹配3个a。
    • {n,}:匹配前面的字符出现至少n次,例如a{3,}匹配3个或多个a。
    • {n,m}:匹配前面的字符出现至少n次,最多m次,例如a{3,5}匹配3个到5个a。
  • 位置
    • ^:匹配字符串的开头。
    • $:匹配字符串的结尾。
    • \b:匹配单词的边界,例如\babc\b匹配abc单词,不匹配abca或aabc。
    • \B:匹配非单词的边界。

正则表达式标志

正则表达式的标志用来指定正则表达式的行为,可以有多个标志。

  • g:全局匹配,不止匹配第一个。
  • i:忽略大小写。
  • m:多行匹配。

正则表达式方法

在JavaScript中,可以使用正则表达式的方法来实现字符串的匹配、查找和替换。

  • test():测试字符串是否匹配正则表达式。
  • exec():在字符串中查找正则表达式匹配的内容,并返回匹配信息的数组。
  • match():返回字符串中与正则表达式匹配的字符串的数组。
  • search():返回字符串中与正则表达式匹配的位置。
  • replace():使用替换字符串替换掉与正则表达式匹配的子串。
  • split():将字符串分割成数组,使用正则表达式作为分隔符。

实例

// 创建正则表达式 
var reg = /abc/i; 
// 测试字符串是否匹配正则表达式 
var str = "Abc"; 
var result1 = reg.test(str); // true 
// 在字符串中查找正则表达式匹配的内容,并返回匹配信息的数组 
var result2 = reg.exec(str); // ["Abc"] 
// 返回字符串中与正则表达式匹配的字符串的数组 
var result3 = str.match(reg); // ["Abc"] 
// 返回字符串中与正则表达式匹配的位置 
var result4 = str.search(reg); // 0 
// 使用替换字符串替换掉与正则表达式匹配的子串 
var result5 = str.replace(reg, "efg"); // "efg" 
// 将字符串分割成数组,使用正则表达式作为分隔符 
var str2 = "a,b,c"; 
var result6 = str2.split(","); // ["a", "b", "c"]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值