浅谈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的面向对象(二)
Nov 09 Javascript
jquery validation插件表单验证的一个例子
Mar 03 Javascript
解析js中获得父窗口链接getParent方法以及各种打开窗口的方法
Jun 19 Javascript
window.location 对象所包含的属性
Oct 10 Javascript
jsMind通过鼠标拖拽的方式调整节点位置
Apr 13 Javascript
jQuery插件实现文字无缝向上滚动效果代码
Feb 25 Javascript
学习使用jquery iScroll.js移动端滚动条插件
Mar 24 Javascript
vue中appear的用法
Aug 17 Javascript
JavaScript实现读取与输出XML文件数据的方法示例
Jun 05 Javascript
vue移动端使用appClound拉起支付宝支付的实现方法
Nov 21 Javascript
jQuery HTML获取内容和属性操作实例分析
May 20 jQuery
javascript实现数字时钟效果
Feb 06 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下一个非常全面获取图象信息的函数
2008/11/20 PHP
PHP高级对象构建 多个构造函数的使用
2012/02/05 PHP
PHP中key和current,next的联合运用实例分析
2016/03/29 PHP
PHP 返回数组后处理方法(开户成功后弹窗提示)
2017/07/03 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
2017/09/21 PHP
ext jquery 简单比较
2010/04/07 Javascript
js DOM 元素ID就是全局变量
2012/09/20 Javascript
如何实现chrome浏览器关闭页面时弹出“确定要离开此面吗?”
2015/03/05 Javascript
js实现统计字符串中特定字符出现个数的方法
2016/08/02 Javascript
JavaScript Ajax实现异步通信
2016/12/14 Javascript
基于vue.js无缝滚动效果
2018/01/25 Javascript
JavaScript判断对象和数组的两种方法
2019/05/31 Javascript
js实现查询商品案例
2020/07/22 Javascript
基于p5.js 2D图像接口的扩展(交互实现)
2020/11/30 Javascript
[58:46]OG vs NAVI 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python 常用的安装Module方式汇总
2017/05/06 Python
python+django+sql学生信息管理后台开发
2018/01/11 Python
Linux(Redhat)安装python3.6虚拟环境(推荐)
2018/05/05 Python
Python基础学习之类与实例基本用法与注意事项详解
2019/06/17 Python
简单了解python反射机制的一些知识
2019/07/13 Python
python+selenium 点击单选框-radio的实现方法
2019/09/03 Python
tensorflow实现训练变量checkpoint的保存与读取
2020/02/10 Python
Python3交互式shell ipython3安装及使用详解
2020/07/11 Python
解决PyCharm不在run输出运行结果而不是再Console里输出的问题
2020/09/21 Python
python 下载m3u8视频的示例代码
2020/11/11 Python
美国最大的宠物药店:1-800-PetMeds
2016/10/02 全球购物
UML设计模式笔试题
2014/06/07 面试题
2014年道德讲堂实施方案
2014/03/05 职场文书
学生夜不归宿检讨书
2014/09/23 职场文书
领导班子遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
校园广播稿精选
2014/10/01 职场文书
党员自评材料范文
2014/12/17 职场文书
优秀党支部申报材料
2014/12/24 职场文书
学习焦裕禄观后感
2015/06/09 职场文书
MySQL Threads_running飙升与慢查询的相关问题解决
2021/05/08 MySQL
详解Alibaba Java诊断工具Arthas查看Dubbo动态代理类
2022/04/08 Java/Android