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判断浏览器是否是IE的比较好的办法
May 08 Javascript
6款经典实用的jQuery小插件及源码(对话框/提示工具等等)
Feb 04 Javascript
jquery控制显示服务器生成的图片流
Aug 04 Javascript
JavaScript中函数表达式和函数声明及函数声明与函数表达式的不同
Nov 15 Javascript
Vuejs 用$emit与$on来进行兄弟组件之间的数据传输通信
Feb 23 Javascript
JavaScript无阻塞加载和defer、async详解
Feb 26 Javascript
红黑树的插入详解及Javascript实现方法示例
Mar 26 Javascript
Webpack中publicPath路径问题详解
May 03 Javascript
node.js遍历目录的方法示例
Aug 01 Javascript
element-ui 中的table的列隐藏问题解决
Aug 24 Javascript
Vuejs开发环境搭建及热更新【推荐】
Sep 07 Javascript
小程序多图列表实现性能优化的方法步骤
May 28 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
基于empty函数的输出详解
2013/06/17 PHP
php计算函数执行时间的方法
2015/03/20 PHP
PHP利用Cookie设置用户30分钟未操作自动退出功能
2017/07/03 PHP
javascript之大字符串的连接的StringBuffer 类
2007/05/08 Javascript
js url传值中文乱码之解决之道
2009/11/20 Javascript
在jquery中处理带有命名空间的XML数据
2011/06/13 Javascript
js变换显示图片的实例
2013/04/16 Javascript
cookie.js 加载顺序问题怎么才有效
2013/07/31 Javascript
jquery选择符快速提取web表单数据示例
2014/03/27 Javascript
jQuery实现鼠标双击Table单元格变成文本框及输入内容后更新到数据库的方法
2015/11/25 Javascript
jquery及js实现动态加载js文件的方法
2016/01/21 Javascript
js判断主流浏览器类型和版本号的简单实现代码
2016/05/26 Javascript
详解vue项目构建与实战
2017/06/27 Javascript
10个经典的网页鼠标特效代码
2018/01/09 Javascript
浅谈vue 单文件探索
2018/09/05 Javascript
微信小程序文章详情页跳转案例详解
2019/07/09 Javascript
解决vue中使用proxy配置不同端口和ip接口问题
2019/08/14 Javascript
ionic+html5+API实现双击返回键退出应用
2019/09/17 Javascript
vue实现div可拖动位置也可改变盒子大小的原理
2020/09/16 Javascript
python中关于时间和日期函数的常用计算总结(time和datatime)
2013/03/08 Python
Python实现针对给定字符串寻找最长非重复子串的方法
2018/04/21 Python
浅析Python装饰器以及装饰器模式
2018/05/28 Python
HTML5 Canvas像素处理使用接口介绍
2012/12/02 HTML / CSS
Soft Cotton捷克:来自爱琴海棉花的浴袍
2017/02/01 全球购物
Pharmacy Online中文直邮网站:澳洲大型药房
2020/06/27 全球购物
导游的职业规划书范文
2013/12/27 职场文书
总经理司机岗位职责
2014/02/06 职场文书
法律六进活动方案
2014/03/13 职场文书
军训口号
2014/06/13 职场文书
中秋节主题班会
2015/08/14 职场文书
《静夜思》教学反思
2016/02/17 职场文书
小学2016年“我们的节日·重阳节”活动总结
2016/04/01 职场文书
Java用自带的Image IO给图片添加水印
2021/06/15 Java/Android
openstack中的rpc远程调用的方法
2021/07/09 Python
Python极值整数的边界探讨分析
2021/09/15 Python
攻击最高的10只幽灵系神奇宝贝,坚盾剑怪排第一,第五最为可怕
2022/03/18 日漫