正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。搜索模式可用于文本搜索和文本替换。

什么是正则表达式正则表达式,英语:Regular Expression,在代码中常简写为regex、regexp或RE

正则表达式是由一个字符序列形成的搜索模式。

当你在文本中搜索数据时,你可以用搜索模式来描述你要查询的内容。

正则表达式可以是一个简单的字符,或一个更复杂的模式。

正则表达式可用于所有文本搜索和文本替换的操作。

正则表达式的组成正则定界符

原子

元字符

模式修正符

正则定界符在JS中正则表达式的定界符就是一对/,所有写在/之内的都是正则的内容。

注意:在其他语言中可以使用其他特殊符号作为正则定界符。

原子原子是组成正则表达式最基本的单位。任何一个正则表达式至少包含一个原子。

所有可见和不可见的字符都是原子!

6个特殊原子:\d 表示0-9之间的任意一个数字字符

\D 表示除了0-9之外的任意一个字符

\s 表示所有不可见字符中的任意一个字符

\S 表示所有可见字符中的任意一个字符

\w 表示数字,字母和下划线中的任意一个字符

\W 表示数字,字母下划线之外的任意一个字符

元字符元字符的作用就是用来修饰原子,使得正则表达式的结构更加灵活可靠。元字符也叫作原子修饰符。

[] 原子列表

用户可以通过原子列表的方式自定义指定范围的字符。原子列表依然表示指定范围字符中的一个字符。

注意: 原子列表表示多个字符中的一个字符。

[^]排除列表

排除列表是原子列表的提升,可以限定选取制定字符之外的字符中的一个。

注意: 如果列表(原子/排除列表)中的字符在ASCII码上是连续的,可以进行缩写操作[ABCDEFG] -> [A-G]

[2345678] -> [2-8]

[abcdefghijklmnopqrstuvwxyz] -> [a-z]

\*任意数量的指定原子

\+一个数量以上的原子

? 表示0个或1个原子

{} 圈定范围{m} 表示m个原子

{m,} 表示m个以上的原子

{m,n} 表示m-n个数量之间原子

^ 表示字符串必须以正则中指定的字符开头!

$ 表示字符串必须以正则中指定的字符结尾!

^正则表达式$ 精确匹配模式

\b 单词边界

表示能够用来分割单词的字符, 空格,标点符号,特殊字符(除了数字和字母)

\B 非单词边界

表示不能够用于分割单词的字符。 数字和字母

注意:词边界和非词边界一般只用于英文正则中。

表示除了\n之外的任意一个字符

注意:如果正则中需要使用字符。 必须进行转义 \。除此之外,任意在正则表达式中又意义的字符要当做普通字符使用都必须进行转义操作(。 * + ? [] () ^ $)。

()括号元字符可以将多个原子当做一个原子使用,可以添加元字符修饰。

将()中的内容暂时存于内存当中,方便后期调用。

改变正则的优先级,尝尝和|一起使用

|或运算元字符表示在|两侧的正则进行二选一操作

模式修正符对匹配模式进行调节的符号。

模式修正符在定界符的最后使用。

var 变量 = /正则内容/模式修正符;

i忽略英文大小写

g全局匹配模式

m 多行匹配模式

.*?贪婪模式正则在进行匹配时,从开始位置查找最远的结束位置,这种模式称之为贪婪模式。

在进行HTML标签类似内容获取时,贪婪模式会导致整个内容的返回,需要使用非贪婪模式。

固定的书写规则 : .*? 这种方式就是非贪婪模式

?:取消暂存内容的作用取消暂存内容的作用,只留运算优先级的作用

在()最前面 加上?: 字符串 例如 (?:/\d/)

正则表达式对象

声明正则表达式的格式:var 变量 = /正则规则/模式修正符;

var a = /\d/g;

使用对象声明正则表达式:var 变量 = new RegExp('正则规则','模式修正符');

var a = new RegExp('\\d', 'g');\\转义

成员属性

source

表示当前正则表达式的正则规则var a = /\d/g;

var b = a.source;

console.log(b);输出:\d

获取结果不包括在正则表达式文本中使用的分隔斜线,并且它不包括在“g”,“i” 和“m” 属性。

lastIndex

匹配模式中带有g修饰符,这个属性存储在整个字符串中下一次检索的开始位置

注意: 仅在g模式下会发生变化,没有g模式,该属性永远为0

成员方法

exec() 进行一次正则匹配在g模式下,每一次匹配都会在上一次匹配的位置之后开始继续匹配

在非g模式下,每次一次匹配都会从字符串的开头重新匹配。

格式: 正则对象。exec(字符串);

exec()和match()的区别:

如果在非g模式下,exec()和match()除了操作格式不一样,结果是一样的。

在g模式下,exec()依然进行一次匹配,只不过在上次匹配的内容之后开始一次新的匹配

在g模式下,match()是一次性返回字符串中所有符合正则内容组成的数组。

test() 进行正则测试

它的参数是一个字符串,用test( )对某个字符串进行检测,该方法仅仅是用于测试正则内容是否在字符串中出现,匹配成功返回true,匹配失败返回false。

compile() 重新编译正则,垃圾回收再用格式: 正则对象.compile('正则规则','模式修正符')

该方法主要用于避免再次创建正则对象,将之前的正则对象修改规则之后继续使用,可以提高程序效率

本文转自:https://www.cnblogs.com/aduner/p/12231438.html

表示所有字符的正则表达式html,JavaScript正则表达式介绍相关推荐

  1. java正则表达式邮政编码,javascript正则表达式匹配邮编与邮箱

    //i 忽略大小写 //g 全局匹配 //m 多行匹配 /* //邮编匹配 var pattern = /^[w-]+.(zip|gz|rar)$/;    //[a-zA-Z0-9_]可以用w代替 ...

  2. JavaScript正则表达式(2)

    前言 在正文开始前,先说说正则表达式是什么,为什么要用正则表达式?正则表达式在我个人看来就是一个浏览器可以识别的规则,有了这个规则,浏览器就可以帮我们判断某些字符是否符合我们的要求.但是,我们为什么要 ...

  3. JavaScript正则表达式快速判断技巧

    原文:JavaScript正则表达式快速判断技巧 这里是JS的正则的一点心得,并不是最完整的规则汇总,更侧重实际运用中的快速判断,初学者接触正则之后往往会被一堆星号括号给弄晕,有了一些速判技巧就能从整 ...

  4. javascript 正则表达式详解

    正则表达式中的特殊字符 字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个 ...

  5. JavaScript 正则表达式的使用

    版权声明:本文由吴仙杰创作整理,转载请注明出处:https://segmentfault.com/a/1190000009169325 1. 引言 正则表达式本身语法是一致,只是各编程语法对正则表达式 ...

  6. 经典JavaScript正则表达式实战

    来源:http://www.cainiao8.com/web/js_note/js_regular_expression_blueidea.html 目录 1. 正则表达式实战...1    2. 匹 ...

  7. 温故知新 javascript 正则表达式

    温故知新 javascript 正则表达式 转载:http://www.cnblogs.com/libinqq/archive/2008/07/31/1257699.html 很长时间没看 正则表达式 ...

  8. JavaScript正则表达式笔记

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

  9. javascript正则表达式小结

    总结了一下javascript正则表达式的内容.表格形式,一目了然.辅以Example图形解释. 一.元字符 二.反义字符 三.转义字符 四.重复匹配 五.分组/捕获 六.贪婪与惰性 七.修饰符 ex ...

最新文章

  1. ASP编程常用的函数function集合
  2. 讯飞输入法有没有Linux,Debian testing 安装讯飞输入法 - Linux系统与应用 - LinuxApp - 水木社区...
  3. 基于STM32和W5500的Modbus TCP通讯
  4. 备份自己常用的VS2010设置
  5. JPA getValidationMode()
  6. 谈谈lucene的DocValues特性之SortedNumericDocValuesField
  7. a标签download属性无效_使用这些 CSS 属性选择器来提高前端开发效率
  8. PLSQL Developer 12 破解注册码(64位)
  9. 2018年腾讯校招产品群面体会
  10. 总结:服务网格(Service Mesh)
  11. 墨画子卿第一章第4节:世界观的颠覆
  12. 5W无线充SOC方案芯片FS68001封装SOP16和SOP8
  13. 海思Hi3516dv300屏幕调试MIPI TX接口LCD屏幕(京东方JD9366)
  14. 【数据库】数据库恢复技术
  15. 软件开发知识点基础介绍
  16. 嵌入式跑马灯实验报告linux,ARM嵌入式跑马灯设计实验报告.doc
  17. statuml怎么添加用户_starUML用户使用手册
  18. 揭开小额信贷业务系统的秘密
  19. python 第七周
  20. 专题一:欧拉视频放大(线性)------MATLAB代码解析(一.maxPyrHt(imsz,filtsz))

热门文章

  1. UVA1169 Robotruck
  2. 华为HCIP云计算考证心得
  3. 基于Mininet,搭建简单的sFlow测试环境
  4. 解除newduba首页_解决Chrome浏览器主页驱动精灵自己固定主页行为
  5. xmanager键盘输入两次的问题
  6. ons模拟器 linux,ons模拟器
  7. 看雪学院-Android安全
  8. 数值计算——牛顿插值法
  9. 《Activiti/Flowable  深入BPM工作流》- Activiti 与springboot 怎么进行整合?
  10. 《Activiti/Flowable  深入BPM工作流》-如何设置local流程变量?