欢迎访问啄木鸟家庭维修
首页 > 家修学院 > 生活百科 > js正则表达式
找附近维修师傅,快速上门预约  

js正则表达式

2023-05-27 来源:啄木鸟家庭维修 852

匹配n次以上

  {n,m} 匹配n-m次

  [xyz] 字符集(character set),匹配这个集合中的任一一个字符(或元字符)

  [‌yz] 不匹配这个集合中的任何一个字符

  [\b] 匹配一个退格符

  \b 匹配一个单词的边界

  \B 匹配一个单词的非边界

  \cX 这儿,X是一个控制符,/\cM/匹配Ctrl-M

  \d 匹配一个字数字符,/\d/ = /[0-9]/

  \D 匹配一个非字数字符,/\D/ = /[成:

  var re = /strTemp/;

  如果是字符连接:

  var re = “/” + str + “/”即可

  但是要生成表达式,可以实现吗?怎样实现?

  正则表达式是一个描述字符模式的对象。

  JavaScript的RegExp对象和String对象定义了使用正则表达式来执行强大的模式匹配和文本检索与替换函数的方法.

  在JavaScript中,正则表达式是由一个RegExp对象表示的.当然,可以使用一个RegExp()构造函数来创建RegExp对象,

  也可以用JavaScript 1.2中的新添加的一个特殊语法来创建RegExp对象.就像字符串直接量被定义为包含在引号内的字符一样,

  正则表达式直接量也被定义为包含在一对斜杠(/)之间的字符.所以,JavaScript可能会包含如下的代码:

  var pattern = /s$/;

  这行代码创建一个新的RegExp对象,并将它赋给变量parttern.这个特殊的RegExp对象和所有以字母”s”结尾的字符串都匹配.用RegExp()也可以定义

  一个等价的正则表达式,代码如下:

  var pattern = new RegExp(“s$”);

  无论是用正则表达式直接量还是用构造函数RegExp(),创建一个RegExp对象都是比较容易的.较为困难的任务是用正则表达式语法来描述字符的模式.

  JavaScript采用的是Perl语言正则表达式语法的一个相当完整的子集.

  正则表达式的模式规范是由一系列字符构成的.大多数字符(包括所有字母数字字符)描述的都是按照字面意思进行匹配的字符.这样说来,正则表达式/java/就和所有包含子串 “java” 的字符串相匹配.虽然正则表达式中的其它字符不是按照字面意思进行匹配的,但它们都具有特殊的意义.正则表达式 /s$/ 包含两个字符. 第一个特殊字符 “s” 是按照字面意思与自身相匹配.第二个字符 “$” 是一个特殊字符,它所匹配的是字符串的结尾.所以正则表达式 /s$/ 匹配的就是以字母 “s” 结尾的字符串.

1.直接量字符

  我们已经发现了,在正则表达式中所有的字母字符和数字都是按照字面意思与自身相匹配的.JavaScript的正则表达式还通过以反斜杠(\)开头的转义序列支持某些非字母字符.例如,序列 “\n” 在字符串中匹配的是一个直接量换行符.在正则表达式中,许多标点符号都有特殊的含义.下面是这些字符和它们的含义:

  正则表达式的直接量字符

  字符 匹配

  字母数字字符 自身

  \ f 换页符

  \ n 换行符

  \ r 回车

  \ t 制表符

  \ v 垂直制表符

  \ / 一个 / 直接量

  \ \ 一个 \ 直接量

  \ . 一个 ./ \d \ d \ d \ d /.但我们还没有一种方法可以用来描述具有任意多数位的数字或者是一个字符串.这个串由三个字符以及跟随在字母之后的一位数字构成.这些复杂的模式使用的正则表达式语法指定了该表达式中每个元素要重复出现的次数.

  指定复制的字符总是出现在它们所作用的模式后面.由于某种复制类型相当常用.所以有一些特殊的字符专门用于表示它们.例如: +号匹配的就是复制前一模式一次或多次的模式.下面的表列出了复制语法.先看一个例子:

  /\d{2, 4}/ //匹配2到4{0, 1}

  + 匹配前一项1次或多次,等价于{1,}

  * 匹配前一项0次或多次.等价于{0,}

4.选择,分组和引用

  正则表达式的语法还包括指定选择项,对子表达式分组和引用前一子表达式的特殊字符.字符| 用于分隔供选择的字符.例如: /ab|cd|ef/ 匹配的是字符串 “ab”,或者是字符串 “cd”,又或者 “ef”. /\d{3}|[a-z]{4}/ 匹配的是要么是一个三位数,要么是四个小写字母.在正则表达式中括号具有几种作用.它的主要作用是把单独的项目分组成子表达式,以便可以像处理一个独立的单元那种用 *、+或? 来处理那些项目.例如: /java(script) ?/ 匹配的是字符串 “java”,其后既可以有 “script”,也可以没有. /

  (ab|cd) + |ef) / 匹配的既可以是字符串 “ef”,也可以是字符串”ab” 或者 “cd” 的一次或多次重复.

  在正则表达式中,括号的第二个用途是在完整的模式中定义子模式。当一个正则表达式成功地和目标字符串相匹配时,可以从目标串中抽出和括号中的子模式相匹配的部分.例如,假定我们正在检索的模式是一个或多个字母后面跟随一位或多位数字,那么我们可以使用模式 / [a-z] + \ d+/.但是由于假定我们真正关心的是每个匹配尾部的数字,那么如果我们将模式的数字部分放在括号中 (/ [a-z] + (\d+)/) ,我们就可以从所检索到的任何匹配中抽取数字了,之后我们会对此进行解析的.

  代括号的子表达式的另一个用途是,允许我们在同一正则表达式的后面引用前面的子表达式.这是通过在字符串 \ 后加一位或多位数字来实现的.数字指的是代括号的子表达式在正则表达式中的位置.例如: \1 引用的是第一个代括号的子表达式. \3 引用的是第三个代括号的子表达式.注意,由于子表达式可以嵌套在其它子表达式中,

  所以它的位置是被计数的左括号的位置.

  例如:在下面的正则表达式被指定为 \2:

  /([Jj]ava([Ss]cript)) \sis \s (fun\w*) /

  对正则表达式中前一子表达式的引用所指定的并不是那个子表达式的模式,而是与那个模式相匹配的文本.这样,引用就不只是帮助你输入正则它实施了一种规约,那就是开始的引号必须和结束的引号相匹配.注意,如果反斜杠后跟随的数字比代括号的子表达式数多,那么它就会被解析为一个十进制的转义序列,而不是一个引用.你可以坚持使用完整的三个字符来表示转义序列,这们就可以避免混淆了.例如, 使用 \044,而不是\44.下面是正则表达式的选择、分组和引用字符:

  字符 含义

  | 选择.匹配的要么是该符号左边的子表达式,要么它右边的子表达式

  (...) 分组.将几个项目分为一个单元.这个单元可由 *、+、?和|等符号使用,而且还可以记住和这个组匹配的字符以供此后引

  用使用

  \n 和第n个分组所匹配的字符相匹配.分组是括号中的子表达式(可能是嵌套的).分组号是从左到右计数的左括号数

5.指定匹配的位置

  我们已经看到了,一个正则表达式中的许多元素才能够匹配字符串的一个字符.例如: \s 匹配的只是一个空白符.还有一些正则表达式的元素匹配的是字符之间宽度为0的空间,而不是实际的字符例如: \b 匹配的是一个词语的边界,也就是处于一个/w字字符和一个\w非字字符之间的边界.像\b 这配的是字符的开头,在多行检索中,匹配的是一行的开头

  $ 匹配的是字符的结尾,在多行检索中,匹配的是一行的结尾

  \b 匹配的是一个词语的边界.简而言之就是位于字符\w 和 \w之间的位置(注意:[\b]匹配的是退格符)

  \B 匹配的是非词语的边界的字符

6.属性

  有关正则表达式的语法还有最后一个元素,那就是正则表达式的属性,它说明的是高级模式匹配的规则.和其它正则表达式语法不同,属性是在 / 符号之外说明的.即它们不出现在两个斜杠之间,而是位于第二个斜杠之后.javascript 1.2支持两个属性.属性 i 说明模式匹配应该是大小写不敏感的.属性 g 说明模式匹配应该是全局的.也

  就是说,应该找出被检索的字符串中所有的匹配.这两种属性联合起来就可以执行一个全局的,大小写不敏感的匹配.

  例如: 要执行一个大小不敏感的检索以找到词语 “java” (或者是 “java” 、”JAVA”等) 的第一个具体值,我们可以使用大小不敏感的正则表达式 /\b java\b/i .如果要在一个字符串中找到 “java” 所有的具体值,我和结尾,还匹配检索字符串内部的一行的开头和结尾.

免责声明:本网站转載内容均注明出处,转載是出于传递更多信息之目的,井不意味成其观点或证实其内容真实性。转载稿涉及版权等问题,请 立即联系网站编辑,我们会予以更改或删除相关文章,保证您的权利
上一篇: ed2k怎么下载 下一篇: iTunes怎么同步
预约一下·服务到家
请选择地址
      获取验证码

      好师傅推荐

      马老师

      马老师

      最近已有2573人购买 联系TA
      刘师傅

      刘师傅

      最近已有2247人购买 联系TA
      李师傅

      李师傅

      最近已有2304人购买 联系TA

      热门问题

      前锋燃气灶维修

      前锋燃气灶维修的具体步骤可能因故障类型和具体情况而有所不同。以下是一般的维修步骤: 1. 故障排查:首先,确定燃气灶出现的问题。常见的故障包括点火困难、火焰不稳定、燃气泄漏等。检查燃气阀门是否打开,电池是否正常,火孔是否堵塞等。 2. 关闭燃气阀门:在进行任何维修操作之前,务必关闭燃气阀门,以确保安全。 3. 清洁和检查:如果点火困难或火焰不稳定,可能是火孔堵塞。使用细针或牙签清理火孔,确保燃气能

      2138次访问 查看详情

      附近的燃气灶维修

      如果你需要附近的燃气灶维修服务,你可以通过以下几种方式找到可靠的维修人员: - 在线搜索:使用搜索引擎,输入“附近的燃气灶维修”或相关关键词,加上你所在的地区或城市名称,如“北京附近的燃气灶维修”。搜索结果将显示附近的维修服务提供商的网站、电话号码和用户评价。 - 电话簿或黄页:查看当地的电话簿或黄页,找到“燃气灶维修”或“家电维修”类别下的相关条目。这些目录通常会列出附近的维修公司的联系信息。

      1727次访问 查看详情

      方太燃气灶火苗小是什么原因

      方太燃气灶火苗小可能有以下原因: 1. 燃气不足:检查燃气罐或燃气管道是否有足够的燃气供应。 2. 燃气阀门未完全打开:确保燃气阀门完全打开。 3. 火孔堵塞:清理燃烧器上的火孔,去除杂物和积碳。 4. 减压阀问题:减压阀故障可能导致燃气压力不足,影响火苗大小。 5. 燃气管道堵塞:检查燃气管道是否有堵塞或弯曲。 6. 风门调节不当:适当调整风门,使空气与燃气混合比例合适。 7. 燃烧器老化:长期

      2491次访问 查看详情

      洗衣机入水很小很慢

      洗衣机入水很小很慢可能由多种原因导致,以下是一些可能的解决方法: - 水压问题:如果家里的水压较低,可能会导致洗衣机入水很慢。可以检查其他水龙头的水流情况,如果水流也很小,可能需要联系物业或自来水公司解决水压问题。 - 水龙头问题:洗衣机的水龙头可能被堵塞或损坏,导致水流不畅。可以检查水龙头是否有杂物堵塞,或者更换水龙头。 - 进水阀问题:洗衣机的进水阀可能出现故障,导致进水缓慢。可以检查进水阀是

      1680次访问 查看详情

      洗衣机清洗费用一般多少钱

      洗衣机清洗费用因地区、洗衣机类型、清洗方式等因素而异,一般来说,波轮洗衣机清洗费用在 100-150 元左右,滚筒洗衣机清洗费用在 150-200 元左右。 需要注意的是,以上价格仅供参考,具体价格还需要根据当地的实际情况来确定。

      1661次访问 查看详情
      没有合适的?想获取更多维修报价,试试“在线客服