字符串是编程时涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在。 正则表达式是一种用来匹配字符串的强有力的武器。它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了。
\d可以匹配一个数字                 '00\d'可以匹配'007' ,'\d\d\d'可以匹配'010'
\w可以匹配一个字母或数字      '\w\w'可以匹配'js'
\s可以匹配一个空格(也包括Tab等空白符)
\DWS都是表示匹配与小写字母相反的匹配关系
\数字n表示指向第n个分组捕获到的字符串文本的一个引用,能够再次被匹配       /(\d+)(0*)\1/可以匹配‘22300223’
.可以匹配任意字符                  'js.'可以匹配'jsp''jss''js!'
正则表达式量词:
*表示任意个字符(包括0个)
+表示至少一个字符
?表示0个或1个字符
{n}表示n个字符
{n,m}表示n-m个字符
A|B可以匹配A或B       (J|j)ava(S|s)cript可以匹配'JavaScript''Javascript''javaScript'或者'javascript'
^表示行的开头          ^\d表示必须以数字开头
$表示行的结束          \d$表示必须以数字结束
[]表示范围,字符类                           
[a-zA-Z\_\$][0-9a-zA-Z\_\$]*可以匹配由字母或下划线、$开头,后接任意个由一个数字、字母或者下划线、$组成的字符串,也就是JavaScript允许的变量名
[a-zA-Z\_\$][0-9a-zA-Z\_\$]{0, 19}更精确地限制了变量的长度是1-20个字符(前面1个字符+后面最多19个字符)
[] 中的^ 表示排除某个字符     [^#?] 表示除了?和#的所有字符    
()表示捕获型分组,可以将匹配的字符串进行分组,提取子串。 
如果正则表达式中定义了组,就可以在RegExp对象上用exec()方法提取出子串来。
exec()匹配成功后,返回一个Array,第一个元素是正则表达式匹配到的整个字符串,后面的字符串表示匹配成功的子串。
exec()匹配失败时返回null
^(\d{3})-(\d{3,8})$分别定义了两个组,可以直接从匹配的字符串中提取出区号和本地号码:
var re = /^(\d{3})-(\d{3,8})$/;
re.exec('010-12345'); // ['010-12345', '010', '12345']
re.exec('010 12345'); // null  

(?:) 分组不想被捕获的时候使用,可以提高程序执行速度,非捕获型分组不会干扰捕获型分组编号。
用正则表达式切分字符串比用固定的字符更灵活

'a,b;; c  d'.split(/[\s\,\;]+/); // ['a', 'b', 'c', 'd']

  

RegExp对象的test()方法用于测试给定的字符串是否符合条件。

var re = /^\d{3}\-\d{3,8}$/;
re.test('010-12345'); // true
re.test('010-1234x'); // false

需要特别指出的是,正则匹配默认是贪婪匹配,也就是匹配尽可能多的字符。

var re = /^(\d+)(0*)$/;
re.exec('102300'); // ['102300', '102300', '']

由于\d+采用贪婪匹配,直接把后面的0全部匹配了,结果0*只能匹配空字符串了。

加个?就可以让\d+采用非贪婪匹配:

var re = /^(\d+?)(0*)$/;
re.exec('102300'); // ['102300', '1023', '00']

特殊标志
g标志 ,表示全局匹配
i标志,表示忽略大小写
m标志,表示执行多行匹配
需要使用转义符' \ '的15个特殊字符
/ \  [  ] ( )  { } ? + * | . ^ $ 

转载于:https://www.cnblogs.com/lemonade1172/p/7279945.html

【RegExp】JavaScript中正则表达式判断匹配规则以及常用方法相关推荐

  1. 详解Javascript中正则表达式的使用

    章节目录 Javascript中正则表达式的使用 String.prototype.search方法 String.prototype.replace方法 String.prototype.split ...

  2. java中正则全局匹配_JS中正则表达式全局匹配模式/g用法实例

    JS中正则表达式全局匹配模式 /g用法详解 本文章来详细介绍js中正则表达式的全局匹配模式 /g用法, var str = "123#abc"; var re = /abc/ig; ...

  3. android intent-filter作用,Android中Intent-Filter的匹配规则是什么

    Android中Intent-Filter的匹配规则是什么 发布时间:2020-12-14 15:19:32 来源:亿速云 阅读:67 作者:Leah 今天就跟大家聊聊有关Android中Intent ...

  4. JavaScript中变量判断是否是数字,判断是否是整数,判断是否是正整数/负整数,判断奇数/偶数的方法

    (1)判断是否是整数  JavaScript中变量判断是否是数字,判断是否是整数,判断是否是正整数/负整数,判断奇数/偶数的方法. (1)判断是否是整数 // 判断整数function isInteg ...

  5. Javascript中正则表达式的全局匹配模式

    先看一道JavaScript题目,据说是国内某知名互联网企业的JavaScript笔试题,如果对正则的全局匹配模式不了解的话可能会对下面的输出结果感到疑惑. View Code var str = & ...

  6. javascript中正则表达式的基础语法

    前面的话 正则表达式在人们的印象中可能是一堆无法理解的字符,但就是这些符号却实现了字符串的高效操作.通常的情况是,问题本身并不复杂,但没有正则表达式就成了大问题.javascript中的正则表达式作为 ...

  7. javaScript中正则表达式的使用

    正则表达式是用于匹配字符串中字符组合的模式.在 JavaScript 中,正则表达式也是对象. 这些模式被用于 RegExp 的 exec 和 test 方法,以及 String 的 match.ma ...

  8. javascript 中怎么判断为数字类型

    javascript中判断变量是否为数字类型抄的方法有两种: 方法一: function isnum(s) { if(s!=null){ var r,re; re = /\d*/i; //\d表示数字 ...

  9. JavaScript中正则表达式详解

    正则表达式的介绍 * 正则表达式也叫规则表达式[Regular Expression],是按照一定的规则组成的一个表达式,主要作用是用来匹配字符串的* 正则表达式可以在大多数编程语言中使用* 正则表达 ...

最新文章

  1. 企业云存储云办公方案
  2. 02HTML标签(下)
  3. maven 常用插件3
  4. 【正一专栏】欧冠小组赛第四轮综述——有钱就能风清扬
  5. JavaScript this指向相关内容
  6. nodejs之async异步编程
  7. 为多用户安装conda_Anaconda软件安装
  8. Socks5协议中文文档
  9. [编程开发工具-7]:四款功能强大的代码比较工具:Araxis Merge、Beyond compare、DiffMerge、WinMerge
  10. 柳传志给杨元庆的信件 (zt)
  11. ARM Cortex-A 系列处理器天梯图
  12. 深度Linux的安装
  13. 手游脚本_开发与迭代
  14. 小白记录问题(2)——关于np.savez()与np.laod()储存与读取字典数据的问题
  15. tortoise冲突处理
  16. php怎么变成微信小程序,自己怎么开通微信小程序
  17. 服务器上安装anaconda3
  18. 研究生体检色弱计算机专业,考研体检,轻度色弱会不会被刷
  19. Python通过ARIMA模型进行时间序列分析预测
  20. 圣索菲亚大教堂Mac动态壁纸

热门文章

  1. 学习笔记——使用下划线命名的规则
  2. Android控件布局属性全解(一看就会)
  3. python中 是什么类型_浅谈python中的变量默认是什么类型
  4. 数据结构特性解析 (二) ArrayList
  5. 如何正确运用计算机,如何正确使用电脑
  6. 2021-01-26 Python自动化办公-处理word文档
  7. 怎么把json数据转化为数组_RESTful API 返回统一JSON数据格式是怎么实现的?
  8. ios开发 自定义btn_iOS一步步实现一个高度自定义UIButton控件
  9. c语言数码管编写程序,跪求单片机0~99数码管显示用C语言编写的程序
  10. 8.局部变量/全局变量global/内嵌函数/闭包nonlocal