JS正则表达式比较常见用法


Posted in Javascript onJanuary 26, 2016

废话不多说,直接步入正轨了,想要了解js正则表达式用法的相关知识,通过本教程学习吧。

定义和使用

var patt1 = new RegExp("hello"); 
var patt2 = /world/ ;

test方法

test() 方法检索字符串中的指定值。返回值是 true 或 false。

var pat = /my/; 
var str = "this is my code..."; 
console.log(pat.test(str)); // true

exec方法

exec() 方法检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 null。

var pat = /hello/; 
console.log(pat.exec("oh hello world")); //返还hello

正则表达式类型

/pattern/attributes
参数 attributes 是一个可选的字符串,常用属性 “g”、”i” ,分别用于指定全局匹配、区分大小写的匹配。

var str = "Visit Hunger"; 
var patt1 = /hunger/i; //不区分大小写 
console.log(str.match(patt1)); //全局匹配 
var str="hello hunger valley! I am hunger"; 
var patt1=/hunger/g; 
console.log(str.match(patt1)); //不区分大小写,全局匹配 
var str="hello Hunger valley! I am hunger"; 
var patt1=/hunger/gi; 
console.log(str.match(patt1));

字符串正则

1. search

字符串查找

var str="Visit W3School!"; 
console.log(str.search(/w3school/)); //-1 console.log(str.serach(/w3school/i)); // 6

2. match

字符串匹配

var str="1 plus 2 equal 33"; 
console.log(str.match(/\d+/)); //[1] 
console.log(str.match(/\d+/g)); //[1,2,33]

3. replace

字符串替换

var str="Hello JI! oh I am hunger" 
console.log(str.replace(/Hunger/, "valley")); console.log(str.replace(/hunger/ig, "hunger"));

4.split

字符串分割

var str = "Hello Hunger , oh I am Hunger"; 
str.split("");
str.split(/\s+/);

正则写法

[abc] 查找方括号之间的任何字符。

var str="Is this all there is?"; 
var patt1=/[a-h]/g;
console.log(str.match(patt1));

[^abc] 查找任何不在方括号之间的字符。

var str="hello jikexueyuan!"; 
var patt1=/[^jike]/g; 
console.log(str.match(patt1));

[0-9] 查找任何从 0 至 9 的数字。

[a-z] 查找任何从小写 a 到小写 z 的字符。

[A-Z] 查找任何从大写 A 到大写 Z 的字符。

[A-z] 查找任何从大写 A 到小写 z 的字符。

[adgk] 查找给定集合内的任何字符。

[^adgk] 查找给定集合外的任何字符。

red|blue|green 查找任何指定的选项。

var str="hello hunger! How are you?"; 
var patt1=/hello|you/g; c
onsole.log(str.match(patt1));

. 查找单个字符,除了换行和行结束符。

var str="That's hot!"; 
var patt1=/h.t/g; 
document.write(str.match(patt1));

\w 查找单词字符(字母、数字、下划线)。

var str="Give 100%!"; 
var patt1=/\w/g; 
document.write(str.match(patt1));

\W 查找非单词字符。

var str="Give 100%!"; var patt1=/\W/g; document.write(str.match(patt1));

\d 查找数字。

var str="Give 100%!"; 
var patt1=/\d/g; 
document.write(str.match(patt1));

\D 查找非数字字符。

var str="Give 100%!"; var patt1=/\D/g; document.write(str.match(patt1));

\s 查找空白字符(空格、tab、换行、回车)。

var str="Is this all there is?";
var patt1=/\s/g; document.write(str.match(patt1));

\S 查找非空白字符。

var str="Is this all there is?"; var patt1=/\S/g; document.write(str.match(patt1));

\b 匹配单词边界。

/\bm/ 匹配 “moon” 中的 ‘m';
/oo\b/ 不匹配 “moon” 中的 ‘oo',因为 ‘oo' 后面的 ‘n' 是一个单词字符;
/oon\b/ 匹配 “moon” 中的 ‘oon',因为 ‘oon' 位于字符串的末端,后面没有单词字符;

var str="Hello jikexueyuan"; 
var patt1=/\bjikexueyuan/g; 
document.write(str.match(patt1));

\B 匹配非单词边界。

\n 查找换行符。

var str="Hello Hunger.\n be a FE."; 
var patt1=/\n/g; document.write(str.search(patt1));

n+ 匹配任何包含至少一个 n 的字符串。

var str="Hello HHunger! Hello World!"; 
var patt1=/H+/g; 
document.write(str.match(patt1)); 
var str="Hello Hunger! Hello World!"; 
var patt1=/\w+/g; document.write(str.match(patt1));

n* 匹配任何包含零个或多个 n 的字符串。

var str="Hellooo Hunger! Hello World!"; var patt1=/lo*/g; document.write(str.match(patt1))

n? 匹配任何包含零个或一个 n 的字符串。

var str="1, 100 or 1000?"; var patt1=/10?/g; document.write(str.match(patt1));

n{X} 匹配包含 X 个 n 的序列的字符串。

var str="100, 1000 or 10000?"; var patt1=/\d{4}/g; document.write(str.match(patt1));

n{X,Y} 匹配包含 X 或 Y 个 n 的序列的字符串。

var str="100, 1000 or 10000?"; var patt1=/\d{3,4}/g; document.write(str.match(patt1));

n{X,} 匹配包含至少 X 个 n 的序列的字符串。

var str="100, 1000 or 10000?"; var patt1=/\d{3,}/g; document.write(str.match(patt1));

n$ 匹配任何结尾为 n 的字符串。

var str="Is this his"; var patt1=/is$/g; document.write(str.match(patt1));

^n 匹配任何开头为 n 的字符串。

var str="Is this his"; var patt1=/^Is/g; document.write(str.match(patt1));

常见正则

汉字: [\u4e00-\u9fa5]
手机号: 1[0-9]{10}
邮箱: (\S)+[@]{1}(\S)+[.]{1}(\w)+

Javascript 相关文章推荐
jQuery选中select控件 无法设置selected的解决方法
Sep 01 Javascript
getComputedStyle与currentStyle获取样式(style/class)
Mar 19 Javascript
jquery Validation表单验证使用详解
Sep 12 Javascript
jQuery.each使用详解
Jul 07 Javascript
如何实现json数据可视化详解
Nov 24 Javascript
jQuery插件FusionCharts实现的MSBar3D图效果示例【附demo源码】
Mar 23 jQuery
Node.js之网络通讯模块实现浅析
Apr 01 Javascript
Vue制作Todo List网页
Apr 26 Javascript
Vue.js实现文章评论和回复评论功能
May 30 Javascript
JavaScript实现三级级联特效
Nov 05 Javascript
Vue组件模板及组件互相引用代码实例
Mar 11 Javascript
浅谈JavaScript 声明提升
Sep 14 Javascript
WebGL利用FBO完成立方体贴图效果完整实例(附demo源码下载)
Jan 26 #Javascript
JS组件中bootstrap multiselect两大组件较量
Jan 26 #Javascript
JS组件Form表单验证神器BootstrapValidator
Jan 26 #Javascript
jQuery实现的指纹扫描效果实例(附演示与demo源码下载)
Jan 26 #Javascript
Bootstrap树形组件jqTree的简单封装
Jan 25 #Javascript
javascript实现2016新年版日历
Jan 25 #Javascript
基于javascript实现图片左右切换效果
Jan 25 #Javascript
You might like
centos 5.6 升级php到5.3的方法
2011/05/14 PHP
php实现快速排序法函数代码
2012/08/27 PHP
ThinkPHP连接数据库及主从数据库的设置教程
2014/08/22 PHP
PHP加密解密类实例代码
2016/07/20 PHP
PHP删除数组中特定元素的两种方法
2019/02/28 PHP
js同时按下两个方向键
2007/12/01 Javascript
js面向对象 多种创建对象方法小结
2012/05/21 Javascript
解析offsetHeight,clientHeight,scrollHeight之间的区别
2013/11/20 Javascript
JavaScript中的ArrayBuffer详细介绍
2014/12/08 Javascript
js验证上传图片的方法
2015/05/12 Javascript
简述Jquery与DOM对象
2015/07/10 Javascript
深入解读JavaScript中的Hoisting机制
2015/08/12 Javascript
结合代码图文讲解JavaScript中的作用域与作用域链
2016/07/05 Javascript
jQuery简单实现iframe的高度根据页面内容自适应的方法
2016/08/01 Javascript
详解Vue路由History mode模式中页面无法渲染的原因及解决
2017/09/28 Javascript
Element Table的row-class-name无效与动态高亮显示选中行背景色
2018/11/30 Javascript
微信小程序学习笔记之登录API与获取用户信息操作图文详解
2019/03/29 Javascript
微信小程序实现授权登录
2019/05/15 Javascript
vue cli 3.0 搭建项目的图文教程
2019/05/17 Javascript
JS如何生成动态列表
2020/09/22 Javascript
[01:09:24]Ti4开幕式
2014/07/19 DOTA
使用Python编写Prometheus监控的方法
2018/10/15 Python
Python计算时间间隔(精确到微妙)的代码实例
2019/02/26 Python
Django 对象关系映射(ORM)源码详解
2019/08/06 Python
python编写猜数字小游戏
2019/10/06 Python
Ubuntu下Python+Flask分分钟搭建自己的服务器教程
2019/11/19 Python
利用python对excel中一列的时间数据更改格式操作
2020/07/14 Python
Matplotlib中rcParams使用方法
2021/01/05 Python
css3 position fixed固定居中问题解决方案
2014/08/19 HTML / CSS
CSS3 实现时间轴动画
2020/11/25 HTML / CSS
澳大利亚在线百货商店:Real Smart
2017/08/13 全球购物
七一党日活动总结
2014/07/08 职场文书
科学发展观活动总结
2014/08/28 职场文书
企业爱心捐款倡议书
2015/04/27 职场文书
卡特教练观后感
2015/06/08 职场文书
springboot创建的web项目整合Quartz框架的项目实践
2022/06/21 Java/Android