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 相关文章推荐
js 设置选中行的样式的实现代码
May 24 Javascript
JavaScript/Js脚本处理html元素的自定义属性解析(亲测兼容Firefox与IE)
Nov 25 Javascript
Jquery 返回json数据在IE浏览器中提示下载的问题
May 18 Javascript
js检验密码强度(低中高)附图
Jun 05 Javascript
jQuery常用的一些技巧汇总
Mar 26 Javascript
js格式化时间的简单实例
Nov 27 Javascript
jQuery插件HighCharts绘制2D带有Legend的饼图效果示例【附demo源码下载】
Mar 10 Javascript
vue2.x 父组件监听子组件事件并传回信息的方法
Jul 17 Javascript
js防刷新的倒计时代码 js倒计时代码
Sep 06 Javascript
将jquery.qqFace.js表情转换成微信的字符码
Dec 01 jQuery
react高阶组件添加和删除props
Apr 26 Javascript
vscode中使用npm安装babel的方法
Aug 02 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
PHP中关于php.ini参数优化详解
2020/02/28 PHP
Javascript操作select方法大全[新增、修改、删除、选中、清空、判断存在等]
2008/09/26 Javascript
XENON基于JSON变种
2010/07/27 Javascript
javascript event 事件解析
2011/01/31 Javascript
在标题栏显示新消息提示,很多公司项目中用到这个方法
2011/11/04 Javascript
jQuery中需要注意的细节问题小结
2011/12/06 Javascript
引用 js在IE与FF之间的区别详细解析
2013/11/20 Javascript
setTimeout()递归调用不加引号出错的解决方法
2014/09/05 Javascript
深入解读JavaScript中的Iterator和for-of循环
2015/07/28 Javascript
基于JavaScript实现百叶窗动画效果不只单纯flas可以实现
2016/02/29 Javascript
JavaScript事件代理和委托详解
2016/04/08 Javascript
jQuery获取父元素节点、子元素节点及兄弟元素节点的方法
2016/04/14 Javascript
jQuery实现的放大镜效果示例
2016/09/13 Javascript
js Canvas实现的日历时钟案例分享
2016/12/25 Javascript
搭建一个nodejs脚手架的方法步骤
2019/06/28 NodeJs
详解JavaScript 异步编程
2020/07/13 Javascript
vue实现移动端拖动排序
2020/08/21 Javascript
微信小程序canvas实现签名功能
2021/01/19 Javascript
Python基于matplotlib绘制栈式直方图的方法示例
2017/08/09 Python
python 识别图片中的文字信息方法
2018/05/10 Python
python实现决策树ID3算法的示例代码
2018/05/30 Python
手动安装python3.6的操作过程详解
2020/01/13 Python
tensorflow指定CPU与GPU运算的方法实现
2020/04/21 Python
keras 指定程序在某块卡上训练实例
2020/06/22 Python
tensorflow图像裁剪进行数据增强操作
2020/06/30 Python
python利用opencv保存、播放视频
2020/11/02 Python
pandas map(),apply(),applymap()区别解析
2021/02/24 Python
介绍下Java的输入输出流
2014/01/22 面试题
database面试题
2013/03/28 面试题
公司营业员的工作总结自我评价
2013/10/05 职场文书
个人教师自我评价范文
2013/12/02 职场文书
餐饮业会计岗位职责
2013/12/19 职场文书
爸爸的花儿落了教学反思
2014/02/20 职场文书
党员证明模板
2015/06/19 职场文书
详解Spring Boot使用系统参数表提升系统的灵活性
2021/06/30 Java/Android
浅谈Redis位图(Bitmap)及Redis二进制中的问题
2021/07/15 Redis