浅谈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 相关文章推荐
JS 文字符串转换unicode编码函数
May 30 Javascript
使用Jquery实现点击文字后变成文本框且可修改
Sep 21 Javascript
jquery ajax 调用失败的原因示例介绍
Sep 27 Javascript
用jquery写的一个万年历(自写)
Jan 20 Javascript
Jquery实现控件的隐藏和显示实例
Feb 08 Javascript
JS通过ajax动态读取xml文件内容的方法
Mar 24 Javascript
深入理解Java线程编程中的阻塞队列容器
Dec 07 Javascript
js removeChild 方法深入理解
Aug 16 Javascript
jquery动态添加文本并获取值的方法
Oct 12 Javascript
JS实现太极旋转思路分析
Dec 09 Javascript
Bootstrap标签页(Tab)插件切换echarts不显示问题的解决
Jul 13 Javascript
vue-router中的hash和history两种模式的区别
Jul 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中Snoopy类用法实例
2015/06/19 PHP
用JS操作FRAME中的IFRAME及其内容的实现代码
2008/07/26 Javascript
犀利的js 函数集合
2009/06/11 Javascript
jquery删除ID为sNews的tr元素的内容
2014/04/10 Javascript
angularjs 表单密码验证自定义指令实现代码
2016/10/27 Javascript
浅谈AngularJS中ng-class的使用方法
2016/11/11 Javascript
微信公众号 摇一摇周边功能开发
2016/12/08 Javascript
利用Query+bootstrap和js两种方式实现日期选择器
2017/01/10 Javascript
nodejs更改项目端口号的方法
2018/05/13 NodeJs
JQuery的加载和选择器用法简单示例
2019/05/13 jQuery
了解javascript中let和var及const关键字的区别
2019/05/24 Javascript
基于js实现复制内容到操作系统粘贴板过程解析
2019/10/11 Javascript
[02:39]我与DAC之Newbee.Moogy:从论坛到TI
2018/03/26 DOTA
Python中的FTP通信模块ftplib的用法整理
2016/07/08 Python
Python cookbook(数据结构与算法)实现查找两个字典相同点的方法
2018/02/18 Python
用xpath获取指定标签下的所有text的实例
2019/01/02 Python
详解将Python程序(.py)转换为Windows可执行文件(.exe)
2019/07/19 Python
django 消息框架 message使用详解
2019/07/22 Python
使用python实现kNN分类算法
2019/10/16 Python
python 实现dict转json并保存文件
2019/12/05 Python
keras在构建LSTM模型时对变长序列的处理操作
2020/06/29 Python
详解pycharm配置python解释器的问题
2020/10/15 Python
全球性的女装店:storets
2019/06/12 全球购物
荷兰美妆护肤品海淘网站:Beautinow(中文)
2020/11/22 全球购物
毕业生动漫设计求职信
2013/10/11 职场文书
房地产销售经理岗位职责
2014/01/01 职场文书
远程教育心得体会
2014/01/03 职场文书
2014年节能减排工作总结
2014/12/06 职场文书
英语辞职信范文
2015/02/28 职场文书
地心历险记观后感
2015/06/15 职场文书
2015上半年个人工作总结
2015/07/27 职场文书
2016年寒假社会实践活动总结
2015/10/10 职场文书
OpenCV-Python 实现两张图片自动拼接成全景图
2021/06/11 Python
openstack云计算keystone组件工作介绍
2022/04/20 Servers
js作用域及作用域链工作引擎
2022/07/07 Javascript
SQL Server数据库的三种创建方法汇总
2023/05/08 MySQL