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查找法实现当前栏目的高亮显示的代码
Nov 24 Javascript
js字母大小写转换实现方法总结
Nov 13 Javascript
jQuery.Highcharts.js绘制柱状图饼状图曲线图
Mar 14 Javascript
基于Arcgis for javascript实现百度地图ABCD marker的效果
Sep 12 Javascript
jQuery基于ID调用指定iframe页面内的方法
Jul 06 Javascript
Json按某个键的值进行排序
Dec 22 Javascript
Vue 2.5.2下axios + express 本地请求404的解决方法
Feb 21 Javascript
setTimeout时间设置为0详细解析
Mar 13 Javascript
深入浅析Vue中的Prop
Jun 10 Javascript
Vue中使用 setTimeout() setInterval()函数的问题
Sep 13 Javascript
webpack 代码分离优化快速指北
May 18 Javascript
jQuery列表动态增加和删除的实现方法
Nov 05 jQuery
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
高亮度显示php源代码
2006/10/09 PHP
简单的方法让你的后台登录更加安全(php中加session验证)
2012/08/22 PHP
初识PHP
2014/09/28 PHP
PHP的cURL库简介及使用示例
2015/02/06 PHP
php实现改变图片直接打开为下载的方法
2015/04/14 PHP
使用URL传输SESSION信息
2015/07/14 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
2018/02/07 PHP
javascript 类方法定义还是有点区别
2009/04/15 Javascript
jQuery UI Datepicker length为空或不是对象错误的解决方法
2010/12/19 Javascript
用js实现table单元格高宽调整,兼容合并单元格(兼容IE6、7、8、FF)实例
2013/06/25 Javascript
JavaScript的jQuery库中ready方法的学习教程
2015/08/14 Javascript
gameboy网页闯关游戏(riddle webgame)--仿微信聊天的前端页面设计和难点
2016/02/21 Javascript
AngularJS基础 ng-cloak 指令简单示例
2016/08/01 Javascript
jquery 追加元素append、prepend、before、after用法与区别分析
2016/12/02 Javascript
超全面的JavaScript开发规范(推荐)
2017/01/21 Javascript
JS实现直接运行html代码的方法
2017/03/13 Javascript
JavaScript实现经纬度转换成地址功能
2017/03/28 Javascript
jQuery+ajax实现局部刷新的两种方法
2017/06/08 jQuery
angularjs $http实现form表单提交示例
2017/06/09 Javascript
js禁止Backspace键使浏览器后退的实现方法
2017/09/01 Javascript
微信小程序获取手机网络状态的方法【附源码下载】
2017/12/08 Javascript
在Vue项目中,防止页面被缩放和放大示例
2019/10/28 Javascript
Angular如何由模板生成DOM树的方法
2019/12/23 Javascript
webpack proxy 使用(代理的使用)
2020/01/10 Javascript
python rsa 加密解密
2017/03/20 Python
Python 2/3下处理cjk编码的zip文件的方法
2019/04/26 Python
Python中的正则表达式与JSON数据交换格式
2019/07/03 Python
Python 实现平台类游戏添加跳跃功能
2020/03/27 Python
使用keras实现孪生网络中的权值共享教程
2020/06/11 Python
深入解读CSS3中transform变换模型的渲染
2016/05/27 HTML / CSS
《欢乐的泼水节》教学反思
2014/04/22 职场文书
车辆工程专业求职信
2014/06/14 职场文书
幼儿园见习报告
2014/10/30 职场文书
师德标兵事迹材料
2014/12/19 职场文书
现实表现材料范文
2014/12/23 职场文书
为什么代码规范要求SQL语句不要过多的join
2021/06/23 MySQL