浅谈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 相关文章推荐
用Javascript读取中文COOKIE的解决办法
Feb 15 Javascript
基于jQuery+HttpHandler实现图片裁剪效果代码(适用于论坛, SNS)
Sep 02 Javascript
JavaScript高级程序设计阅读笔记(五) ECMAScript中的运算符(一)
Feb 27 Javascript
innerText和textContent对比及使用介绍
Feb 27 Javascript
Node.js的npm包管理器基础使用教程
May 26 Javascript
微信小程序 Flex布局详解
Oct 09 Javascript
搭建vue开发环境
Jul 19 Javascript
微信小程序异步API为Promise简化异步编程的操作方法
Aug 14 Javascript
在vue项目中,将juery设置为全局变量的方法
Sep 25 Javascript
webstorm+vue初始化项目的方法
Oct 18 Javascript
JavaScript学习笔记之DOM基础操作实例小结
Jan 09 Javascript
JS简单数组排序操作示例【sort方法】
May 17 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
PHP多个文件上传到服务器实例
2014/10/29 PHP
利用switch语句进行多选一判断的实例代码
2016/11/14 PHP
简单实现php上传文件功能
2017/09/21 PHP
javascript复制对象使用说明
2011/06/28 Javascript
jQuery LigerUI 使用教程表格篇(1)
2012/01/18 Javascript
开发 Internet Explorer 右键功能表(ContextMenu)
2013/07/03 Javascript
JS过滤url参数特殊字符的实现方法
2013/12/24 Javascript
jquery实现类似EasyUI的页面布局可改变左右的宽度
2020/09/12 Javascript
原生javascript实现图片滚动、延时加载功能
2015/01/12 Javascript
js实现上传图片及时预览
2016/05/07 Javascript
jQuery实现div横向拖拽排序的简单实例
2016/07/13 Javascript
javascript滚轮事件基础实例讲解(37)
2017/02/14 Javascript
Vue2组件tree实现无限级树形菜单
2017/03/29 Javascript
JavaScript实现前端分页控件
2017/04/19 Javascript
详解Vue爬坑之vuex初识
2017/06/14 Javascript
JavaScript编写棋盘覆盖代码详解
2017/08/28 Javascript
动态统计当前输入内容的字节、字符数的实例详解
2017/10/27 Javascript
JS简单实现查看文档创建日期、修改日期和文档大小的方法示例
2018/04/08 Javascript
通过js示例讲解时间复杂度与空间复杂度
2019/08/06 Javascript
vue 中的 render 函数作用详解
2020/02/28 Javascript
Python 文件和输入输出小结
2013/10/09 Python
python实现ping的方法
2015/07/06 Python
python 读取DICOM头文件的实例
2018/05/07 Python
Django+zTree构建组织架构树的方法
2019/08/21 Python
服务器端jupyter notebook映射到本地浏览器的操作
2020/04/14 Python
css3实现背景模糊的三种方式(小结)
2020/05/15 HTML / CSS
HTML5的video标签的浏览器兼容性增强方案分享
2016/05/19 HTML / CSS
英国在线潜水商店:Simply Scuba
2019/03/25 全球购物
我有一个char * 型指针正巧指向一些int 型变量, 我想跳过它们。 为什么如下的代码((int *)p)++; 不行?
2013/05/09 面试题
九年级数学教学反思
2014/02/02 职场文书
爽歪歪广告词
2014/03/20 职场文书
买卖协议书范本
2014/04/21 职场文书
指导教师推荐意见
2015/06/05 职场文书
导游词之澳门玫瑰圣母堂
2019/12/03 职场文书
SQL实战演练之网上商城数据库商品类别数据操作
2021/10/24 MySQL
python开发制作好看的时钟效果
2022/05/02 Python