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 miscellanea -display data real time, using window.status
Jan 09 Javascript
Javascript 中的类和闭包
Jan 08 Javascript
javascript将DOM节点添加到文档的方法实例分析
Aug 04 Javascript
Vue-resource实现ajax请求和跨域请求示例
Feb 23 Javascript
webpack+vue2构建vue项目骨架的方法
Jan 09 Javascript
使用vue的transition完成滑动过渡的示例代码
Jun 25 Javascript
Vue.js获取被选择的option的value和text值方法
Aug 24 Javascript
jQuery实现模拟搜索引擎的智能提示功能简单示例
Jan 27 jQuery
vue axios重复点击取消上一次请求封装的方法
Jun 19 Javascript
关于JS解构的5种有趣用法
Sep 05 Javascript
vue之延时刷新实例
Nov 14 Javascript
JavaScript获取URL参数的方法分享
Apr 07 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缓存技术介绍
2006/11/25 PHP
php面向对象程序设计入门教程
2019/06/22 PHP
经典的解除许多网站无法复制文字的绝招
2006/12/31 Javascript
使用Node.js处理前端代码文件的编码问题
2016/02/16 Javascript
BootStrap selectpicker
2016/06/20 Javascript
jquery选择器中的空格与大于号>、加号+与波浪号~的区别介绍
2016/06/24 Javascript
js Canvas实现的日历时钟案例分享
2016/12/25 Javascript
vuejs2.0运用原生js实现简单的拖拽元素功能示例
2017/02/24 Javascript
微信小程序实现倒计时补零功能
2018/07/09 Javascript
angular6.x中ngTemplateOutlet指令的使用示例
2018/08/09 Javascript
浅谈vue项目打包优化策略
2018/09/29 Javascript
小白教程|一小时上手最流行的前端框架vue(推荐)
2019/04/10 Javascript
JavaScript(js)处理的HTML事件、键盘事件、鼠标事件简单示例
2019/11/19 Javascript
js blob类型url的视频下载问题的解决
2019/11/29 Javascript
javascript设计模式 ? 策略模式原理与用法实例分析
2020/04/21 Javascript
python连接mongodb操作数据示例(mongodb数据库配置类)
2013/12/31 Python
Python3中多线程编程的队列运作示例
2015/04/16 Python
Python的Flask框架中使用Flask-Migrate扩展迁移数据库的教程
2016/06/14 Python
python爬取w3shcool的JQuery课程并且保存到本地
2017/04/06 Python
python实现停车管理系统
2018/11/30 Python
Python基于百度云文字识别API
2018/12/13 Python
记录Python脚本的运行日志的方法
2019/06/05 Python
Python3 读取Word文件方式
2020/02/13 Python
基于Python实现体育彩票选号器功能代码实例
2020/09/16 Python
CSS3实现的炫酷菜单代码分享
2015/03/12 HTML / CSS
html5实现图片转圈的动画效果——让页面动起来
2017/10/16 HTML / CSS
HTML5自定义属性的问题分析
2019/08/16 HTML / CSS
以太网Ethernet IEEE802.3
2013/08/05 面试题
C#如何允许一个类被继承但是避免这个类的方法被重载?
2015/02/24 面试题
如何理解transaction事务的概念
2015/05/27 面试题
课改先进个人汇报材料
2014/01/26 职场文书
2014年底工作总结
2014/12/15 职场文书
2015年度个人思想工作总结
2015/04/08 职场文书
mysql对于模糊查询like的一些汇总
2021/05/09 MySQL
动画「半妖的夜叉姬」新BD特典图公开
2022/03/22 日漫
SpringBoot详解执行过程
2022/07/15 Java/Android