浅谈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移动div层-javascript 拖动层
Mar 22 Javascript
单独使用CKFinder选择图片的方法
Aug 21 Javascript
tuzhu_req.js 实现仿百度图片首页效果
Aug 11 Javascript
jquery实现鼠标点击后展开列表内容的导航栏效果
Sep 14 Javascript
JavaScript简单实现合并两个Json对象的方法示例
Oct 16 Javascript
简单的vuex 的使用案例笔记
Apr 13 Javascript
Vue 全局loading组件实例详解
May 29 Javascript
JavaScript实现的文本框placeholder提示文字功能示例
Jul 25 Javascript
jQuery中$原理实例分析
Aug 13 jQuery
vue实现父子组件之间的通信以及兄弟组件的通信功能示例
Jan 29 Javascript
vue学习笔记之Vue中css动画原理简单示例
Feb 29 Javascript
用js实现放大镜效果
Oct 28 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 和 XML: 使用expat函数(一)
2006/10/09 PHP
PHP中获取变量的变量名的一段代码的bug分析
2011/07/07 PHP
php利用iframe实现无刷新文件上传功能的代码
2011/09/29 PHP
利用PHP fsockopen 模拟POST/GET传送数据的方法
2015/09/22 PHP
日常整理PHP中简单的图形处理(经典)
2015/10/26 PHP
PHP进程通信基础之信号量与共享内存通信
2017/02/19 PHP
javascript获取ckeditor编辑器的值(实现代码)
2013/11/18 Javascript
Javascript中使用A标签获取当前目录的绝对路径方法
2015/03/02 Javascript
javascript笔记之匿名函数和闭包
2017/02/06 Javascript
Vue 2.X的状态管理vuex记录详解
2017/03/23 Javascript
Jquery获取radio选中的值
2017/05/05 jQuery
node实现登录图片验证码的示例代码
2018/04/20 Javascript
详解webpack4升级指南以及从webpack3.x迁移
2018/06/12 Javascript
微信小程序 select 下拉框组件功能
2019/09/09 Javascript
Vue 2.0双向绑定原理的实现方法
2019/10/23 Javascript
js的Object.assign用法示例分析
2020/03/05 Javascript
react使用CSS实现react动画功能示例
2020/05/18 Javascript
小程序实现列表倒计时功能
2021/01/29 Javascript
[原创]Python入门教程2. 字符串基本操作【运算、格式化输出、常用函数】
2018/10/29 Python
pandas把所有大于0的数设置为1的方法
2019/01/26 Python
django 基于中间件实现限制ip频繁访问过程详解
2019/07/30 Python
如何基于python测量代码运行时间
2019/12/25 Python
Python yield生成器和return对比代码实例
2020/04/20 Python
python爬虫实现爬取同一个网站的多页数据的实例讲解
2021/01/18 Python
美国瑜伽品牌:Gaiam
2017/10/31 全球购物
意大利高端时尚买手店:Stefania Mode
2018/03/01 全球购物
大学生就业自我鉴定
2013/10/26 职场文书
新闻编辑求职信
2014/04/09 职场文书
旅游与环境专业求职信
2014/06/05 职场文书
项目战略合作意向书
2015/05/08 职场文书
重阳节座谈会主持词
2015/07/03 职场文书
生活小常识广播稿
2015/08/19 职场文书
医生行业员工的辞职信
2019/06/24 职场文书
导游词之苏州寒山寺
2019/12/05 职场文书
如何利用Matlab制作一款真正的拼图小游戏
2021/05/11 Python
用JS实现飞机大战小游戏
2021/06/09 Javascript