浅谈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 页面划词搜索JS
Sep 28 Javascript
基于jquery的Repeater实现代码
Jul 17 Javascript
javascript 判断中文字符长度的函数代码
Aug 27 Javascript
js 阻止子元素响应父元素的onmouseout事件具体实现
Dec 23 Javascript
JS实现进入页面时渐变背景色的方法
Feb 25 Javascript
基于javascript实现漂亮的页面过渡动画效果附源码下载
Oct 26 Javascript
plupload+artdialog实现多平台上传文件
Jul 19 Javascript
Jquery遍历select option和添加移除option的实现方法
Aug 26 Javascript
微信小程序开发一键登录 获取session_key和openid实例
Nov 23 Javascript
利用require.js与angular搭建spa应用的方法实例
Jul 19 Javascript
ionic3 懒加载
Aug 16 Javascript
从源码里了解vue中的nextTick的使用
Nov 22 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 Ctemplate引擎开发相关内容
2012/03/03 PHP
php获取本地图片文件并生成xml文件输出具体思路
2013/04/27 PHP
PHP简单实现防止SQL注入的方法
2018/03/13 PHP
Laravel Validator 实现两个或多个字段联合索引唯一
2019/05/08 PHP
jQuery对象数据缓存Cache原理及jQuery.data方法区别介绍
2013/04/07 Javascript
基于dom编程中 动态创建与删除元素的使用
2013/04/17 Javascript
Javascript模仿淘宝信用评价实例(附源码)
2015/11/26 Javascript
JavaScript判断数组是否存在key的简单实例
2016/08/03 Javascript
vue使用stompjs实现mqtt消息推送通知
2017/06/22 Javascript
vue 封装自定义组件之tabal列表编辑单元格组件实例代码
2017/09/07 Javascript
jQuery中ajax获取数据赋值给页面的实例
2017/12/31 jQuery
实例讲解JavaScript截取字符串
2018/11/30 Javascript
关于node-bindings无法在Electron中使用的解决办法
2018/12/18 Javascript
jQuery对底部导航进行跳转并高亮显示的实例代码
2019/04/23 jQuery
vue组件中watch props根据v-if动态判断并挂载DOM的问题
2019/05/12 Javascript
vue-preview动态获取图片宽高并增加旋转功能的实现
2020/07/29 Javascript
[02:23]2016国际邀请赛中国区预选赛wings晋级之路
2016/06/29 DOTA
Python如何import文件夹下的文件(实现方法)
2017/01/24 Python
python cx_Oracle的基础使用方法(连接和增删改查)
2017/11/19 Python
python读取与写入csv格式文件的示例代码
2017/12/16 Python
Python给你的头像加上圣诞帽
2018/01/04 Python
python-docx修改已存在的Word文档的表格的字体格式方法
2018/05/08 Python
JSON文件及Python对JSON文件的读写操作
2018/10/07 Python
Win下PyInstaller 安装和使用教程
2019/12/25 Python
H&M美国官网:欧洲最大的服饰零售商
2016/09/07 全球购物
夏尔巴人登珠峰品牌:Sherpa Adventure Gear
2018/02/08 全球购物
西安启天科技有限公司网络工程师面试题笔试题
2016/06/12 面试题
国际贸易专业推荐信
2013/11/15 职场文书
暑期学习心得体会
2014/09/02 职场文书
党政领导班子四风问题对照检查材料思想汇报
2014/10/02 职场文书
离婚协议书该怎么写
2014/10/04 职场文书
预备党员群众路线思想汇报2014
2014/10/25 职场文书
2014年驻村干部工作总结
2014/11/17 职场文书
高中教师个人总结
2015/02/10 职场文书
安全责任协议书范本
2016/03/23 职场文书
Python&Matlab实现灰狼优化算法的示例代码
2022/03/21 Python