浅谈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 相关文章推荐
css把超出的部分显示为省略号的方法兼容火狐
Jul 23 Javascript
extjs ColumnChart设置不同的颜色实现代码
May 17 Javascript
iframe窗口高度自适应的又一个巧妙实现思路
Apr 04 Javascript
jQuery mobile 移动web(6)
Dec 20 Javascript
详解js中class的多种函数封装方法
Jan 03 Javascript
js实现不重复导入的方法
Mar 02 Javascript
jQuery用noConflict代替$的实现方法
Apr 12 jQuery
JavaScript实现简单图片轮播效果
Aug 21 Javascript
把vue-router和express项目部署到服务器的方法
Feb 21 Javascript
浅谈Three.js截图并下载的大坑
Nov 01 Javascript
Vue项目中使用jsonp抓取跨域数据的方法
Nov 10 Javascript
javascript中可能用得到的全部的排序算法
Mar 05 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+.htaccess实现全站静态HTML文件GZIP压缩传输(一)
2007/02/15 PHP
php通过文件头检测文件类型通用代码类(zip,rar等)
2010/10/19 PHP
PHP的PDO操作简单示例
2016/03/30 PHP
PHP实现简单的模板引擎功能示例
2017/09/02 PHP
laravel 使用事件系统统计浏览量的实现
2019/10/16 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
2019/12/20 PHP
Nigma vs Liquid BO3 第一场2.14
2021/03/10 DOTA
JQUERY dialog的用法详细解析
2013/12/19 Javascript
javascript实现锁定网页、密码解锁效果(类似系统屏幕保护效果)
2014/08/15 Javascript
node.js中的buffer.write方法使用说明
2014/12/10 Javascript
jquery增加和删除元素的方法
2015/01/14 Javascript
省市联动效果的简单实现代码(推荐)
2016/06/06 Javascript
AngularJS改变元素显示状态
2017/04/20 Javascript
webpack构建的详细流程探底
2018/01/08 Javascript
vue中子组件调用兄弟组件方法
2018/07/06 Javascript
Angular 利用路由跳转到指定页面的指定位置方法
2018/08/31 Javascript
vue-cli3项目展示本地Markdown文件的方法
2019/06/07 Javascript
javascript 关于赋值、浅拷贝、深拷贝的个人理解
2019/11/01 Javascript
vue实现防抖的实例代码
2021/01/11 Vue.js
在Python中封装GObject模块进行图形化程序编程的教程
2015/04/14 Python
详解python里使用正则表达式的分组命名方式
2017/10/24 Python
django 使用 request 获取浏览器发送的参数示例代码
2018/06/11 Python
查看python下OpenCV版本的方法
2018/08/03 Python
Django渲染Markdown文章目录的方法示例
2019/01/02 Python
django最快程序开发流程详解
2019/07/19 Python
Flask框架学习笔记之消息提示与异常处理操作详解
2019/08/15 Python
opencv实现简单人脸识别
2021/02/19 Python
简单了解如何封装自己的Python包
2020/07/08 Python
新奥尔良珠宝:Mignon Faget
2020/11/23 全球购物
AJAX应用和传统Web应用有什么不同
2013/08/24 面试题
单位作风建设剖析材料
2014/10/11 职场文书
学校社团活动总结
2015/05/07 职场文书
详解CSS伪元素的妙用单标签之美
2021/05/25 HTML / CSS
Ajax异步刷新功能及简单案例
2021/11/20 Javascript
Mysql Innodb存储引擎之索引与算法
2022/02/15 MySQL
Python requests用法和django后台处理详解
2022/03/19 Python