JavaScript正则表达式函数总结(常用)


Posted in Javascript onFebruary 22, 2018

/* 测试环境:Chrome 63.0.3239.132 */

JS中正则对象修饰符可选值为:"i" "g" "m",即忽略大小写 进行全局匹配 多行模式

JS中正则表达式支持的元字符:

1:枚举方括号表达式,范围方括号表达式,枚举取反方括号表达式,范围取反方括号表达式

2:. \w \W \d \D \s \S \b \B \n \r \f \v \888 \uffff \xff

3:n? n+ n* n{a} n{a,} n{a,b}及这些量词的非贪心模式

4:^ $ (?!) (?=) (?:)

其他:

1:JS中引用分组请用\number,不支持''和<>这样的命名分组

2:不支持量词的占有模式

3:不支持逆向环视

4:方括号表达式中复合表达式支持如下:

[abc0-9] [abc\d] [\d\w^&]等等类似的

5:支持修饰符组合,比如gim mig gi ig等等,无顺序要求

JS正则对象属性:

global:该对象是否开启全局匹配,一个布尔值

ignoreCase:该对象是否开启忽略大小写,一个布尔值

multiline:该对象是否开启多行模式,一个布尔值

lastIndex:该对象下一次开始匹配的位置,即上一次匹配结束的位置,一个正整数

source:正则表达式的源文本,即/regexp/flag的regexp,不包含修饰符,一个字符串

创建正则表达式:

1:myreg = new RegExp(patternString[,globalFlags]);

2:myreg = /yourRegexp/globalFlags;

JS中正则表达式常用方法:

在RegExp对象中:

1:test(yourString);

定义:检测一个字符串是否匹配某个模式。

其他说明:该方法将忽略"g"标志和正则对象的lastIndex属性(即总是从开头找起),只要查找到符合模式的字符串即匹配成功。

2:exec(yourString);

定义:检索字符串中的正则表达式的匹配。

其他说明:若没开启"g"标志,只查找一次,不修改正则对象的lastIndex属性,返回一个对象,包含下标0、index、input,这时属性和match等价;开启"g",将修改正则对象的lastIndex属性为本次找到的子字符串的末尾位置,返回一个和没开启"g"一样的对象。(你可以自行修改正则对象的lastIndex属性来规定exec开始查找的位置。)

在String对象中:

1:search(yourRegexpOrString);

定义:检索字符串中与指定的子字符串或正则表达式相匹配的子字符串。

其他说明:该方法将忽略"g"标志和正则对象的lastIndex属性(即总是从开头找起),返回找到的第一个字符的位置,如果未找到返回-1。

2:match(yourRegexpOrString);

定义:在字符串内查找一个或多个与正则表达式匹配的字符串,返回一个对象。(忽略laseIndex属性)

其他说明:若没开启"g"标志,将只查找第一个匹配的字符串,返回一个对象,包含下标0、index、input,其中下标0等价于index,input是String的引用;开启"g",返回一个数组,数组的length是匹配的字符串个数,每个元素是每个匹配的起始字符位置。

3:replace(yourRegexpOrString,placementString);

定义:用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

其他说明:如果没有"g"标志只会替换一次,并且如果参数是字符串而不是正则对象始终替换一次。返回一个字符串,为用placementString替换yourRegexpOrString后的结果。placementString中$有特殊用途,见下表:

$1、$2、...、$99 regexp中捕获的引用分组。
$& 本次匹配的文本。
$` 本次匹配到的子串左侧的文本。
$' 本次匹配到的子串右侧的文本。
$$ $本身。

该方法的第二个参数可以为一个函数,每次匹配都会调用该函数,以函数返回值作为placement,一共传入4个参数,第一个参数为本次匹配的子文本($&),中间参数为子表达式匹配字符串,个数不限($i),倒数第二个参数为本次匹配到的子文本下标位置,最后一个参数表示执行place方法的字符串本身。

4:split(yourRegexpOrString[,howMany]);

定义:把一个字符串分割成字符串值的数组。

其他说明:是arr.join(separatorString)反操作,如果传入"",则每个字符都将会被分隔到数组。howMany指定返回数组的个数。

总结

以上所述是小编给大家介绍的JavaScript正则表达式函数总结,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
限制文本字节数js代码
Mar 06 Javascript
javascript获取当前日期时间及其它操作函数
Jan 11 Javascript
javascript 获取图片尺寸及放大图片
Sep 04 Javascript
jQuery防止click双击多次提交及传递动态函数或多参数
Apr 02 Javascript
Javascript+CSS3实现进度条效果
Oct 28 Javascript
vue实现简单实时汇率计算功能
Jan 15 Javascript
vue.js实例todoList项目
Jul 07 Javascript
Vue2.0权限树组件实现代码
Aug 29 Javascript
浅谈JavaScript find 方法不支持IE的问题
Sep 28 Javascript
axios取消请求的实践记录分享
Sep 26 Javascript
微信小程序实现提交input信息到后台的方法示例
Jan 19 Javascript
vue-router 中 meta的用法详解
Nov 01 Javascript
Node Puppeteer图像识别实现百度指数爬虫的示例
Feb 22 #Javascript
原生js调用json方法总结
Feb 22 #Javascript
babel的使用及安装配置教程
Feb 22 #Javascript
vue-cli中的babel配置文件.babelrc实例详解
Feb 22 #Javascript
利用adb shell和node.js实现抖音自动抢红包功能(推荐)
Feb 22 #Javascript
浅谈webpack打包生成的bundle.js文件过大的问题
Feb 22 #Javascript
babel之配置文件.babelrc入门详解
Feb 22 #Javascript
You might like
DC动画很好看?新作烂得令人发指,名叫《红色之子》
2020/04/09 欧美动漫
PHP生成推广海报的方法分享
2018/04/22 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
2019/11/26 PHP
Javascript学习笔记之 对象篇(三) : hasOwnProperty
2014/06/24 Javascript
使用jQuery实现星级评分代码分享
2014/12/09 Javascript
javascript中的正则表达式使用详解
2015/08/30 Javascript
JavaScript电子时钟倒计时第二款
2016/01/10 Javascript
JS判断元素是否在数组内的实现代码
2016/03/30 Javascript
jQuery插件编写步骤详解
2016/06/03 Javascript
angular中实现控制器之间传递参数的方式
2017/04/24 Javascript
详解vue mixins和extends的巧妙用法
2017/12/20 Javascript
使用Vue中 v-for循环列表控制按钮隐藏显示功能
2019/04/23 Javascript
详解ES6数组方法find()、findIndex()的总结
2020/05/12 Javascript
解决vue项目 build之后资源文件找不到的问题
2020/09/12 Javascript
[01:00:04]DOTA2上海特级锦标赛B组小组赛#1 Alliance VS Spirit第二局
2016/02/26 DOTA
[01:35:53]完美世界DOTA2联赛PWL S3 Magma vs GXR 第二场 12.13
2020/12/17 DOTA
[01:30:15]DOTA2-DPC中国联赛 正赛 Ehome vs Aster BO3 第二场 2月2日
2021/03/11 DOTA
python查找第k小元素代码分享
2013/12/18 Python
Python matplotlib画图实例之绘制拥有彩条的图表
2017/12/28 Python
Python实现的HMacMD5加密算法示例
2018/04/03 Python
Python如何爬取实时变化的WebSocket数据的方法
2019/03/09 Python
浅析使用Python搭建http服务器
2019/10/27 Python
python序列化与数据持久化实例详解
2019/12/20 Python
python 实现在shell窗口中编写print不向屏幕输出
2020/02/19 Python
Python如何优雅删除字符列表空字符及None元素
2020/06/25 Python
CSS3 box-sizing属性详解
2016/11/15 HTML / CSS
澳大利亚波西米亚风连衣裙在线商店:Fortunate One
2019/04/01 全球购物
公司周年庆典邀请函
2014/01/12 职场文书
2014年父亲节活动方案
2014/03/06 职场文书
大三学年自我鉴定范文(3篇)
2014/09/28 职场文书
学校百日安全活动总结
2015/05/07 职场文书
计划生育责任书
2015/05/09 职场文书
关于社会实践的心得体会(2016最新版)
2016/01/25 职场文书
导游词之泉州崇武古城
2019/12/20 职场文书
python通过opencv调用摄像头操作实例分析
2021/06/07 Python
Python加密技术之RSA加密解密的实现
2022/04/08 Python