千家信息网

js正则表达式的示例分析

发表于:2025-02-22 作者:千家信息网编辑
千家信息网最后更新 2025年02月22日,这篇文章主要为大家展示了"js正则表达式的示例分析",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"js正则表达式的示例分析"这篇文章吧。正则表达式:对字符串
千家信息网最后更新 2025年02月22日js正则表达式的示例分析

这篇文章主要为大家展示了"js正则表达式的示例分析",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"js正则表达式的示例分析"这篇文章吧。

正则表达式:对字符串中的信息实现查找、替换和提取操作。(不支持注释和空白,必须写在一行内)
正则表达式的创建:包含在一对斜杠之间的字符(直接量语法)
例如:

var pattern = /s$/;  // 创建一个正则来匹配所有以字母s结尾的字符串,并赋值给pattern

一 、字符类
将直接量字符单独放进方括号内就组成了字符类。
一个字符类可以匹配它所包含的任意字符。
正则表达式的字符类:
[...] 方括号内的任意字符
[^...] 不在方括号内的任意字符
. 除换行符和其他Unicode行终止符之外的任意字符
\w 任何ASCII字符组成的单词 等价于[a-zA-Z0-9]
\W 任何非ASCII字符组成的单词 等价于[^a-zA-Z0-9]
\s 任何Unicode空白符
\S 任何非Unicode空白符
\d 任何ASCII数字 等价于[0-9]
\D 任何非ASCII数字 等价于[^0-9]
[\b] 退格直接量(特例)
例如:/[a,b,c]/ 表示和字母a,b,c中的任意一个都匹配
   /[\s\d]/ 表示匹配任意空白字符或者数字

二、重复
用以表示指定字符重复的标记
正则表达式的重复字符语法:
{n,m} 匹配前一项至少n次,但不超过m次
{n,}    匹配前一项n次或者更多次
{n}    匹配前一项n次
?     匹配前一项0次或者1次,也就是前一项是可选的,等价于{0,1}
+    匹配前一项1次或多次,等价于{1,}
*    匹配前一项0次或多次,等价于{0,}

例如:/\d{2,4}/ 匹配2~4个数字
   /\w{3}\d/ 精确匹配3个单词和一个可选数字

三、选择、分组和引用
匹配程序:从左到右,如果左边的匹配项匹配了,就自动忽略右边的匹配项(即使可以产生更好的匹配)
① | 用于分隔供选择的字符
   例如: /ab|cd|ef/ 可以匹配字符串"ab","cd"或者"ef"
       /\d{3}|[a-z]{4}/ 匹配3位数字或四个小写字母
② ()
作用一:把单独项合成子表达式
作用二:在完整的模式中定义子模式
    当一个正则表达式成功的和目标字符串相匹配时,可以从目标字符串中抽出和圆括号中的子模式相匹配的部分。
    例如:
    /[a-z]+\d+/   检索一个或多个小写字母后边跟着一个或多个数字
    如果我们关心的是每个尾部的数字,则可以把模式的数字部分放到括号(/[a-z]+(\d)/),这样就可以从检索到的匹配中抽取数字了
作用三:允许在同一正则表达式的后部引入前面的子表达式
    实现方法:在字符\后加一位或多位数字(这个数字指定了带圆括号的子表达式在正则表达式中的位置)
    例如:\1 引用的是第一个带圆括号的子表达式
    注: 位置以参与计数的左括号位置为准;
    正则表达式不允许用双引号括起的内容中有单引号,反之亦然。
总结:
|    选择,匹配的是该字符左边的子表达式或右边的子表达式
(...) 组合,将几个项组合成一个单元
(...?) 只组合,把项组合到一个单元,但不记忆与该组相匹配的字符
\n 和第n个分组第一次匹配的字符相匹配,组是圆括号中的子表达式,组索引是从左到右的左括号数,(?: 这个形式的分组不参与索引编码
四、指定匹配的位置:
锚 :
指定匹配发生的合法位置
^    匹配字符串的开头
$   匹配字符串的结尾
\b   匹配一个单词的边界 (位于\w和\W之间的位置)
\B   匹配非单词边界的位置

五、修饰符

修饰符是放在//之外的,不会出现在两条/线之间
i 不区分大小写
g 全局匹配,找到所有匹配,而不是找到第一个之后就停止
m 多行匹配

六、 用于模式匹配的String对象的方法
方法一: search() 检索与之匹配的位置
参数:一个正则表达式
返回:第一个与之匹配的子串的起始位置,如果找不到匹配的子串,返回-1
例如:

注:① 如果search()的参数不是正则表达式,则会通过RegExp构造函数将他转换成正则表达式
② search()不支持全局检索
方法二: replace() 执行检索与替换操作
参数:第一个-->正则表达式
   第二个-->要进行替换的字符串(也可是一个函数,该函数能动态的计算替换字符串)
注:① 支持g,
    正则表达式中设置了g:所有与模式匹配的子串都将替换成第二个参数指定的字符串
   正则表达式中没设置g:只替换所匹配的第一个子串
  ② 如果第一个参数不是正则,而是一个字符串时,replace()将直接搜索这个字符串

例如:将所有不区分大小写的javascript都替换成大小写正确的JavaScript

方法三 : match()
参数:正则表达式
返回:由匹配结果组成的数组
支持g
实例一:

  

实例二:

注意:
给字符串的math()传入一个非全局的正则表达式:
匹配情况:只检索第一个匹配
返回值:数组
    数组第一个元素:所匹配的字符串
    数组第二个元素:正则表达式中用圆括号括起来的子表达式,返回的数组有两个属性-->index和input

方法四: split()
返回值:数组
分隔符:split()的参数
例如:

参数是正则表达式时(可以指定分隔符,允许两边可以留任意多的空白符)
返回:用以调用它的字符串拆分为一个子字符串组成的数组

七、RegExp 对象

RegExp()构造函数:
参数:两个字符串参数
第一个:正则表达式的主体部分(两个斜杠之间的文本)
第二个:(可选)指定正则表达式的修饰符(g,i,m这三者或这三者的组合)
注意:无论是字符串直接量还是正则表达式都使用/字符作为转译字符的前缀
例如:

var zipCode = new RegExp('\\d{5}','g'); //全局匹配字符串中的5个数字,注意这里是//而不是/

以上是"js正则表达式的示例分析"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

字符 表达式 正则 字符串 数字 参数 位置 数组 等价 方法 模式 空白 检索 单词 圆括号 之间 全局 内容 函数 字母 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 改装多口打印服务器 表空间满了 新建数据库文件 华硕灵耀怎么进入网络安全 贵阳网络安全培训有哪些机构 微信换头像提示服务器繁忙 网络安全法违法行为诚信档案 运营商的网络服务器层级关系 纪检监察网络技术中心的职责 互联网家电科技屋 开发方案怎么写数据库 周村包装软件开发价格 手操报网络安全教育 网络安全过滤系统论文 首届中小学生网络安全 stata工业企业数据库 软件开发工具都需要什么 兴乐网络技术有限公司 防止数据库出现意外的方法 杰里6976m软件开发包 网络安全居安思危备则无患 虎牙释然服务器是哪个版本的 数据库处理与代码处理效率比较 老旧服务器 网络安全内容顺口溜 广州快修网络技术有限公司 计算机网络技术日常 天水网络安全培训 手机app服务器返回数据异常 广东web前端软件开发价钱 网络安全护航成长主题征文比赛
0