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写一个鼠标拖动效果实现原理与代码
Dec 24 Javascript
js判断字符长度以及中英文数字等
Dec 31 Javascript
javascript实现淡蓝色的鼠标拖动选择框实例
May 09 Javascript
微信小程序图片轮播组件gallery slider使用方法详解
Jan 31 Javascript
vue实现图片加载完成前的loading组件方法
Feb 05 Javascript
vue内置指令详解
Apr 03 Javascript
vue实现可视化可拖放的自定义表单的示例代码
Mar 20 Javascript
JS中的防抖与节流及作用详解
Apr 01 Javascript
微信小程序添加插屏广告并设置显示频率(一天一次)
Dec 06 Javascript
webpack.DefinePlugin与cross-env区别详解
Feb 23 Javascript
Jquery ajax书写方法代码实例解析
Jun 12 jQuery
node.js通过Sequelize 连接MySQL的方法
Dec 28 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
用文本文件制作留言板提示(下)
2006/10/09 PHP
php中通过curl模拟登陆discuz论坛的实现代码
2012/02/16 PHP
PHPCMS2008广告模板SQL注入漏洞修复
2016/10/11 PHP
PHP利用超级全局变量$_POST来接收表单数据的实例
2016/11/05 PHP
LNMP部署laravel以及xhprof安装使用教程
2017/09/14 PHP
PHP封装的page分页类定义与用法完整示例
2018/12/24 PHP
ThinkPHP 5.1 跨域配置方法
2019/10/11 PHP
PHP架构及原理知识点详解
2019/12/22 PHP
window.parent与window.openner区别介绍
2012/04/12 Javascript
JS获取网页属性包括宽、高等等
2014/04/03 Javascript
概述BootStrap中role="form"及role作用角色
2016/12/08 Javascript
利用transition实现文字上下抖动的效果
2017/01/21 Javascript
VueJS如何引入css或者less文件的一些坑
2017/04/25 Javascript
使用Ajax和Jquery配合数据库实现下拉框的二级联动的示例
2018/01/25 jQuery
简单介绍Python中用于求最小值的min()方法
2015/05/15 Python
Python字符和字符值(ASCII或Unicode码值)转换方法
2015/05/21 Python
matlab中实现矩阵删除一行或一列的方法
2018/04/04 Python
Python enumerate函数功能与用法示例
2019/03/01 Python
Python3.5实现的三级菜单功能示例
2019/03/25 Python
wxPython实现列表增删改查功能
2019/11/19 Python
Python&&GDAL实现NDVI的计算方式
2020/01/09 Python
基于python实现ROC曲线绘制广场解析
2020/06/28 Python
浅谈python 类方法/静态方法
2020/09/18 Python
美国高档帽子网上商店:Hats.com
2018/08/09 全球购物
iHerb中文官网:维生素、保健品和健康产品
2018/11/01 全球购物
Invicta手表官方商店:百年制表历史的瑞士腕表品牌
2019/09/26 全球购物
人力资源专业推荐信
2013/11/29 职场文书
建筑文秘专业个人求职信范文
2013/12/28 职场文书
写给女朋友的道歉信
2014/01/08 职场文书
初三政治教学反思
2014/01/30 职场文书
难忘的一天教学反思
2014/04/30 职场文书
交警个人先进事迹材料
2014/05/11 职场文书
2014学习优秀共产党员先进事迹思想汇报
2014/09/14 职场文书
2014年车间主任工作总结
2014/12/10 职场文书
小学一年级数学教学反思
2016/02/16 职场文书
Python3 多线程(连接池)操作MySQL插入数据
2021/06/09 Python