浅谈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.timer插件实现一个计时器
Apr 25 Javascript
JavaScript字符串String和Array操作的有趣方法
Dec 18 Javascript
浅析JavaScript中两种类型的全局对象/函数
Dec 05 Javascript
JS获取元素多层嵌套思路详解
May 16 Javascript
老生常谈JavaScript 正则表达式语法
Aug 20 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(放大缩小)
Dec 02 Javascript
DropDownList实现可输入可选择(两种版本可选)
Dec 07 Javascript
jQuery Validate 校验多个相同name的方法
May 18 jQuery
JavaScript数组_动力节点Java学院整理
Jun 26 Javascript
js实现轮播图的两种方式(构造函数、面向对象)
Sep 30 Javascript
Vue form表单动态添加组件实战案例
Sep 02 Javascript
JavaScript实现缓动动画
Nov 25 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 Undefined index和Undefined variable的解决方法
2008/03/27 PHP
php检测图片木马多进制编程实践
2013/04/11 PHP
使用PHP导出Word文档的原理和实例
2013/10/21 PHP
CI框架Session.php源码分析
2014/11/03 PHP
学习php设计模式 php实现工厂模式(factory)
2015/12/07 PHP
php 自定义错误日志实例详解
2016/11/12 PHP
常用参考资料(手册)下载或者链接
2006/07/22 Javascript
JavaScript方法和技巧大全
2006/12/27 Javascript
js 利用image对象实现图片的预加载提高访问速度
2013/03/29 Javascript
ExtJS[Desktop]实现图标换行示例代码
2013/11/17 Javascript
JavaScript中Function()函数的使用教程
2015/06/04 Javascript
JS及PHP代码编写八大排序算法
2016/07/12 Javascript
JavaScript 动态三角函数实例详解
2017/01/08 Javascript
easyUI combobox实现联动效果
2017/01/17 Javascript
给vue项目添加ESLint的详细步骤
2017/09/29 Javascript
ionic3实战教程之随机布局瀑布流的实现方法
2017/12/28 Javascript
详解小程序原生使用ES7 async/await语法
2018/08/06 Javascript
JavaScript Math对象和调试程序的方法分析
2019/05/13 Javascript
JS页面动态绘图工具SVG,Canvas,VML介简介
2020/10/16 Javascript
js获取图片的base64编码并压缩
2020/12/05 Javascript
[56:46]Liquid vs IG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
Python基于高斯消元法计算线性方程组示例
2018/01/17 Python
Python设计模式之适配器模式原理与用法详解
2019/01/15 Python
Django forms表单 select下拉框的传值实例
2019/07/19 Python
Flask使用Pyecharts在单个页面展示多个图表的方法
2019/08/05 Python
使用Pyinstaller转换.py文件为.exe可执行程序过程详解
2019/08/06 Python
PyTorch笔记之scatter()函数的使用
2020/02/12 Python
基于logstash实现日志文件同步elasticsearch
2020/08/06 Python
css3翻牌翻数字的示例代码
2020/02/07 HTML / CSS
荷兰街头时尚之家:Funkie House
2019/03/18 全球购物
写出SQL四条最基本的数据操作语句(DML)
2012/12/12 面试题
新入职员工的自我介绍演讲稿
2014/01/02 职场文书
2015年电话销售工作总结范文
2015/04/20 职场文书
离职证明范本
2015/06/12 职场文书
五星红旗迎风飘扬观后感
2015/06/17 职场文书
MySQL约束(创建表时的各种条件说明)
2022/06/21 MySQL