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 相关文章推荐
JavaScript入门教程(3) js面向对象
Jan 31 Javascript
JS预览图像将本地图片显示到浏览器上
Aug 25 Javascript
JavaScript实现的双向跨域插件分享
Jan 31 Javascript
jquery实现清新实用的网页菜单效果
Aug 28 Javascript
ui组件之input多选下拉实现方法(带有搜索功能)
Jul 14 Javascript
让编辑器支持word复制黏贴、截屏的js代码
Oct 17 Javascript
Move.js入门
Feb 08 Javascript
Angularjs使用指令做表单校验的方法
Mar 31 Javascript
vue 实现 ios 原生picker 效果及实现思路解析
Dec 06 Javascript
jQuery动态生成的元素绑定事件操作实例分析
May 04 jQuery
微信小程序云开发获取文件夹下所有文件(推荐)
Nov 14 Javascript
创建与框架无关的JavaScript插件
Dec 01 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
超神学院:天使彦公认最美的三个视角,网友:我的天使快下凡吧!
2020/03/02 国漫
php 数学运算验证码实现代码
2009/10/11 PHP
php正则表达式(regar expression)
2011/09/10 PHP
浅析Mysql 数据回滚错误的解决方法
2013/08/05 PHP
ThinkPHP3.1新特性之内容解析输出详解
2014/06/19 PHP
PHP中isset与array_key_exists的区别实例分析
2015/06/02 PHP
PHP处理postfix邮件内容的方法
2015/06/16 PHP
PHP实现的mysql读写分离操作示例
2018/05/22 PHP
可以显示单图片,多图片ajax请求的ThickBox3.1类下载
2007/12/23 Javascript
jQuery最佳实践完整篇
2011/08/20 Javascript
javascript新建标签,判断键盘输入,以及判断焦点(示例代码)
2013/11/25 Javascript
jquery实现鼠标拖拽滑动效果来选择数字的方法
2015/05/04 Javascript
js实现分割上传大文件
2016/03/09 Javascript
原生js实现addClass,removeClass,hasClass方法
2016/04/27 Javascript
jQuery组件easyui基本布局实现代码
2016/08/25 Javascript
Bootstrap中的Dropdown下拉菜单更改为悬停(hover)触发
2016/08/31 Javascript
JS去除字符串中空格的方法
2017/02/14 Javascript
Node.js中多进程模块Cluster的介绍与使用
2017/05/27 Javascript
后台使用freeMarker和前端使用vue的方法及遇到的问题
2019/06/13 Javascript
python实现在pickling的时候压缩的方法
2014/09/25 Python
跟老齐学Python之关于循环的小伎俩
2014/10/02 Python
在Python3中使用asyncio库进行快速数据抓取的教程
2015/04/02 Python
在Python的web框架中配置app的教程
2015/04/30 Python
Python编程之gui程序实现简单文件浏览器代码
2017/12/08 Python
Python OpenCV获取视频的方法
2018/02/28 Python
mac系统下Redis安装和使用步骤详解
2019/07/09 Python
基于Python批量生成指定尺寸缩略图代码实例
2019/11/20 Python
python 多线程死锁问题的解决方案
2020/08/25 Python
Maxpeedingrods美国:高性能汽车零件
2020/02/14 全球购物
经济贸易系毕业生求职信
2014/05/31 职场文书
社团活动总结书
2014/06/27 职场文书
质监局领导班子践行群众路线整改方案
2014/10/26 职场文书
综合测评自我评价
2015/03/06 职场文书
九年级数学教学反思
2016/02/17 职场文书
Python批量将csv文件转化成xml文件的实例
2021/05/10 Python
使用python向MongoDB插入时间字段的操作
2021/05/18 Python