JavaScript基础教程 正则表达式的使用
沉沙 2018-07-31 来源 : 阅读 549 评论 0

摘要:本篇教程介绍了JavaScript基础教程 正则表达式的使用,希望阅读本篇文章以后大家有所收获,帮助大家对JavaScript的理解更加深入。

本篇教程介绍了JavaScript基础教程 正则表达式的使用,希望阅读本篇文章以后大家有所收获,帮助大家对JavaScript的理解更加深入。

<

1. 语法
有两种定义正则表达式的方式

字面量形式

var expression = /pattern/flags
引用 MDN 的解释:

pattern:正则表达式的文本。
flags:标志,可以是具有以下值的任意组合:

g:全局匹配;找到所有匹配,而不是在第一个匹配后停止
i:忽略大小写
m:多行; 将开始和结束字符(^和$)视为在多行上工作(也就是,分别匹配每一行的开始和结束(由 \n 或 \r 分割),而不只是只匹配整个输入字符串的最开始和最末尾处。
u:Unicode; 将模式视为Unicode序列点的序列(ES6 新增)
y:粘性匹配; 仅匹配目标字符串中此正则表达式的lastIndex属性指示的索引(并且不尝试从任何后续的索引匹配)。(ES6 新增。这个不太好理解可以看看两个栗子RegExp.prototype.sticky[MDN],What does regex' flag 'y' do?)


eg:
var pattern = /at/gi;

构造函数形式

var expression = new RegExp(pattern, flags);
eg:
var pattern2 = new RegExp("at", "gi");
这两种写法其实效果是一样的,都是创建了一个新的 RegExp 实例。
RegExp 的每个实例都有以下属性:

flags:所有标志。(ES6 新增)
global:Boolean,表示是否设置了 g 标志。
ignoreCase:Boolean,表示是否设置了 i 标志。
multiline:Boolean,表示是否设置了 m 标志。
lastIndex:表示从哪个位置开始搜索下一个匹配项,从0算起。(https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/RegExp/lastIndex)
source:当前正则表达式对象的模式文本的字符串,该字符串不会包含正则字面量两边的斜杠以及任何的标志字符。


2. 怎么用
简单的字符串匹配可以用 String.match() 方法。
eg:
var str = "cat, bat, sat, fat";
var pattern = /.at/g;
str.match(pattern);
输出:

如果只需要知道是否有匹配而不关心内容,可以用 RegExp.test() 方法。该方法返回布尔值,表示是否匹配成功。
eg:
var str = "cat, bat, sat, fat";
var pattern = /.at/g;
pattern.test(str);
输出:

如果需要用到捕获组的时候,用 RegExp.exec() 方法。该方法返回匹配结果,没有匹配成功时则返回 null。
eg:
var pattern = /aaa and (bbb and (ccc))/g;
var text = "this is aaa and bbb and ccc";
pattern.exec(text);
输出结果:

其中数组中第一项是与整个模式匹配的字符串,其他项是与模式中的捕获组匹配的字符串。如果模式中没有捕获组,则该数组只包含一项。    

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标WEB前端JavaScript频道!

本文由 @沉沙 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved