浅谈Javascript常用正则表达式应用


Posted in Javascript onMarch 08, 2019

模式修饰符的可选参数

  • i: 忽略大小写
  • g: 全局匹配
  • m: 多行匹配
  • /hello/: 两个反斜杠是正则表达式的字面量表示法

两个测试方法

test

const test = new RegExp('hello world', 'ig');
console.log(test.test('hello world')); // true

exec

返回的是数组,有就返回数组的值,没有返回为null

const test = new RegExp('hello world', 'ig');
console.log(test.exec('hello')); // null

四个正则表达式方法

match(pattern)

将所有匹配的字符串组合成数组返回

const pattern=/Box/ig;
const str="This is a Box! The is a box!";
console.log(str.match(pattern));

search(pattern)

返回字符串中pattern开始位置,忽略全局匹配

const pattern=/Box/i;	//
const str="This is a Box! The is a box!";
console.log(str.search(pattern)); // 10

replace(pattern)

替换匹配到的字符串

const pattern=/Box/ig;
const str="This is a Box! The is a box!";
console.log(str.replace(pattern,'Tom'));

split(pattern)

返回字符串指定pattern拆分数组

const pattern = / /ig;	//空格
const str = "This is a Box! The is a box!";
console.log(str.split(pattern)); //以空格进行分割,返回的是数组
// 输出结果
// [ 'This', 'is', 'a', 'Box!', 'The', 'is', 'a', 'box!' ]

匹配模式

\w表示a-zA-Z_
锚元字符匹配(^ $) ^强制收匹配 $强制尾匹配,并且只匹配一个

const pattern=/^[a-z]oogle\d$/;
const str="aoogle2";
console.log(pattern.test(str)); // true

注意: ^符号在[]里面表示 非 在外边表示强制首匹配,并且只匹配一个 要想匹配多个值,使用+
\b表示到达边界

|表示匹配或选择模式

const pattern=/baidu|google|bing/; //匹配或选择其中某个字符,不是相等,包含的意思
const str = "baidu a google"; 
console.log(pattern.test(str)); //返回true

常用正则表达式

检查邮政编码

const pattern = /^[1-9]{1}[0-9]{5}$/;
const str = "122534"; //共6位数,第一位不能为0
console.log(pattern.test(str)); // true

压缩包后缀名
\w等于a-zA-Z0-9_ 使用^限定从首字母匹配 .是特殊符号需要\n进行转义
|选择符必须使用()进行分组

const pattern = /^[\w]+\.(zip|gz|rar)$/; 
const str="a12_.zip"; //文件名 字母_数字.zip,gz,rar
console.log(pattern.test(str)); // true

删除多余空格

方法一: 使用replace只匹配一个,所以使用+匹配多个

var pattern=/^\s+/; 
 var str=" google ";
 var result=str.replace(pattern,'');
 pattern=/\s+$/;
 result=result.replace(pattern,'');

方法二: (.+)贪婪模式,使用惰性模式,后面的空格不让匹配

var pattern=/^\s+(.+?)\s+$/;
 var str=" google ";
 var result=pattern.exec(str,'')[1];

 console.log('|'+result+'|');

方法三: (.+)贪婪模式,改为惰性模式,使用分组模式,只取匹配的内容

var pattern=/^\s+(.+?)\s+$/;
 var str=" google ";
 var result=str.replace(pattern,'$1'); //使用分组模式

 console.log('|'+result+'|'); // |google|

简单邮箱验证

var pattern=/^([\w\.\_]+)@([\w\_]+)\.([a-zA-Z]){2,4}$/;
var str="qzfweb@gmail.com";
console.log(pattern.test(str)); // true

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

Javascript 相关文章推荐
jQuery 树形结构的选择器
Feb 15 Javascript
Js中的onblur和onfocus事件应用介绍
Aug 27 Javascript
Javascript模拟加速运动与减速运动代码分享
Dec 11 Javascript
基于javascript实现右下角浮动广告效果
Jan 08 Javascript
再谈JavaScript异步编程
Jan 27 Javascript
jQuery限制图片大小的方法
May 25 Javascript
详解js的事件代理(委托)
Dec 22 Javascript
JS变量及其作用域
Mar 29 Javascript
详解React 在服务端渲染的实现
Nov 16 Javascript
jQuery 实现DOM元素拖拽交换位置的实例代码
Jul 14 jQuery
Nuxt pages下不同的页面对应layout下的页面布局操作
Nov 05 Javascript
小程序实现文字循环滚动动画
Jun 14 Javascript
validform表单验证的实现方法
Mar 08 #Javascript
webpack4.x下babel的安装、配置及使用详解
Mar 07 #Javascript
Webpack4 使用Babel处理ES6语法的方法示例
Mar 07 #Javascript
深入理解react 组件类型及使用场景
Mar 07 #Javascript
如何优雅地在vue中添加权限控制示例详解
Mar 07 #Javascript
node链接mongodb数据库的方法详解【阿里云服务器环境ubuntu】
Mar 07 #Javascript
Vue中的情侣属性$dispatch和$broadcast详解
Mar 07 #Javascript
You might like
深入apache host的配置详解
2013/06/09 PHP
laravel 实现向公共模板中传值 (view composer)
2019/10/22 PHP
番茄的表单验证类代码修改版
2008/07/18 Javascript
jquery 循环显示div的示例代码
2013/10/18 Javascript
js改变鼠标的形状和样式的方法
2014/03/31 Javascript
利用js制作html table分页示例(js实现分页)
2014/04/25 Javascript
js防止页面被iframe调用的方法
2014/10/30 Javascript
jquery验证手机号是否正确实例讲解
2015/11/17 Javascript
Node.js模块封装及使用方法
2016/03/06 Javascript
前端 Vue.js 和 MVVM 详细介绍
2016/12/29 Javascript
javascript 闭包详解及简单实例应用
2016/12/31 Javascript
Ajax异步文件上传与NodeJS express服务端处理
2017/04/01 NodeJs
js中let和var定义变量的区别
2018/02/08 Javascript
vuejs 切换导航条高亮(路由菜单高亮)的方法示例
2018/05/29 Javascript
jQuery实现输入框的放大和缩小功能示例
2018/07/21 jQuery
vue element table 表格请求后台排序的方法
2018/09/28 Javascript
在 Vue 应用中使用 Netlify 表单功能的方法详解
2019/06/03 Javascript
[45:44]完美世界DOTA2联赛PWL S2 FTD vs PXG 第一场 11.27
2020/12/01 DOTA
[49:11]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第二场 12.20
2020/12/23 DOTA
Django视图和URL配置详解
2018/01/31 Python
Python装饰器的执行过程实例分析
2018/06/04 Python
Python3.0中普通方法、类方法和静态方法的比较
2019/05/03 Python
实现Python与STM32通信方式
2019/12/18 Python
tensorflow pb to tflite 精度下降详解
2020/05/25 Python
python opencv图像处理(素描、怀旧、光照、流年、滤镜 原理及实现)
2020/12/10 Python
欧迪办公美国官网:Office Depot
2016/08/22 全球购物
美国畅销的跑步机品牌:ProForm
2017/02/06 全球购物
Argos官网:英国家喻户晓的百货零售连锁商
2017/04/03 全球购物
梅西酒窖:Macy’s Wine Cellar
2018/01/07 全球购物
英国建筑用品在线:Building Supplies Online(BSO)
2018/04/30 全球购物
图库照片、免版税图片、矢量艺术、视频片段:Depositphotos
2019/08/02 全球购物
电脑专业个人求职信范文
2014/02/04 职场文书
社区工作者个人总结
2015/02/28 职场文书
离婚起诉书范本
2015/05/18 职场文书
使用pandas模块实现数据的标准化操作
2021/05/14 Python
python和Appium的移动端多设备自动化测试框架
2022/04/26 Python