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 相关文章推荐
img标签中onerror用法
Aug 13 Javascript
javascript Window及document对象详细整理
Jan 12 Javascript
jquery实现智能感知连接外网搜索
May 21 Javascript
jQuery中filter()和find()的区别深入了解
Sep 25 Javascript
简单实用的反馈表单无刷新提交带验证
Nov 15 Javascript
原生js的弹出层且其内的窗口居中
May 14 Javascript
深入理解Webpack 中路径的配置
Jun 17 Javascript
在vue项目中,使用axios跨域处理
Mar 07 Javascript
JavaScript中变量、指针和引用功能与操作示例
Aug 04 Javascript
微信小程序使用map组件实现路线规划功能示例
Jan 22 Javascript
vue实现滑动到底部加载更多效果
Oct 27 Javascript
JavaScript工具库MyTools详解
Jan 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
PHP HTML代码串截取代码
2008/12/29 PHP
使用PHP curl模拟浏览器抓取网站信息
2013/10/28 PHP
yii框架表单模型使用及以数组形式提交表单数据示例
2014/04/30 PHP
PHP页面实现定时跳转的方法
2014/10/31 PHP
php封装的smartyBC类完整实例
2016/10/19 PHP
几行代码轻松搞定jquery实现flash8类似的连接效果
2007/05/03 Javascript
jquery1.4 教程二 ajax方法的改进
2010/02/25 Javascript
js 中将多个逗号替换为一个逗号的代码
2014/06/07 Javascript
javascript性能优化之DOM交互操作实例分析
2015/12/12 Javascript
JSON简介以及用法汇总
2016/02/21 Javascript
js严格模式总结(分享)
2016/08/22 Javascript
完美解决IE不支持Data.parse()的问题
2016/11/24 Javascript
基于AGS JS开发自定义贴图图层
2017/03/31 Javascript
详谈js模块化规范
2017/07/07 Javascript
Node.js上传文件功能之服务端如何获取文件上传进度
2018/02/05 Javascript
vue项目部署上线遇到的问题及解决方法
2018/06/10 Javascript
vue两个组件间值的传递或修改方式
2018/07/04 Javascript
ES10的13个新特性示例(小结)
2019/09/23 Javascript
vue-cli2与vue-cli3在一台电脑共存的实现方法
2019/09/25 Javascript
使用TS来编写express服务器的方法步骤
2020/10/29 Javascript
vue3.0实现插件封装
2020/12/14 Vue.js
python访问纯真IP数据库的代码
2011/05/19 Python
python正则表达式match和search用法实例
2015/03/26 Python
Python fileinput模块使用实例
2015/05/28 Python
Python3利用SMTP协议发送E-mail电子邮件的方法
2017/09/30 Python
Python实现FTP弱口令扫描器的方法示例
2019/01/31 Python
Python编写一个验证码图片数据标注GUI程序附源码
2019/12/09 Python
CSS3中HSL和HSLA的简单使用示例
2015/07/14 HTML / CSS
人民调解员先进事迹材料
2014/05/08 职场文书
大学生撤销处分思想汇报
2014/09/12 职场文书
博士生专家推荐信
2014/09/26 职场文书
党的群众路线批评与自我批评发言稿
2014/10/16 职场文书
2014年妇幼保健工作总结
2014/12/08 职场文书
2015年公司行政后勤工作总结
2015/05/20 职场文书
2016年第十九届推普周活动总结
2016/04/06 职场文书
用Python进行栅格数据的分区统计和批量提取
2021/05/27 Python