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 面向对象思想 附源码
Jul 07 Javascript
javaScript parseInt字符转化为数字函数使用小结
Nov 05 Javascript
javascript实现焦点滚动图效果 具体方法
Jun 24 Javascript
jquery中get和post的简单实例
Feb 04 Javascript
php析构函数的具体用法小结
Mar 11 Javascript
jQuery简单倒计时效果完整示例
Sep 20 Javascript
jquery.rotate.js实现可选抽奖次数和中奖内容的转盘抽奖代码
Aug 23 jQuery
使用node.js对音视频文件加密的实例代码
Aug 30 Javascript
解决vue-cli项目打包出现空白页和路径错误的问题
Sep 04 Javascript
JavaScript回调函数callback用法解析
Jan 14 Javascript
ES6使用新特性Proxy实现的数据绑定功能实例
May 11 Javascript
简单了解常用的JavaScript 库
Jul 16 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/10/09 PHP
留言板翻页的实现详解
2006/10/09 PHP
PHP 强制性文件下载功能的函数代码(任意文件格式)
2010/05/26 PHP
浅谈thinkphp的实例化模型
2015/01/04 PHP
PHP的curl函数的用法总结
2019/02/14 PHP
PHPUnit + Laravel单元测试常用技能
2019/11/06 PHP
纯js模拟div层弹性运动的方法
2015/07/27 Javascript
浅谈javascript的Touch事件
2015/09/27 Javascript
JavaScript引用类型和基本类型详解
2016/01/06 Javascript
JS实现为排序好的字符串找出重复行的方法
2016/03/02 Javascript
Bootstrap 组件之按钮(二)
2016/05/11 Javascript
网站申请不到支付宝接口、微信接口,免接口收款实现方式几种解决办法
2016/12/14 Javascript
html5 canvas 详细使用教程
2017/01/20 Javascript
BootStrap TreeView使用实例详解
2017/11/01 Javascript
小程序自定义组件实现城市选择功能
2018/07/18 Javascript
element-ui表格合并span-method的实现方法
2019/05/21 Javascript
详解element-ui设置下拉选择切换必填和非必填
2019/06/17 Javascript
Vue.js中的高级面试题及答案
2020/01/13 Javascript
Python学习入门之区块链详解
2017/07/25 Python
使用Python进行体育竞技分析(预测球队成绩)
2019/05/16 Python
Python企业编码生成系统总体系统设计概述
2019/07/26 Python
python语言实现贪吃蛇游戏
2020/11/13 Python
python 基于opencv实现高斯平滑
2020/12/18 Python
CSS3弹性盒模型开发笔记(一)
2016/04/26 HTML / CSS
CSS3 完美实现圆角效果
2009/07/13 HTML / CSS
生产部统计员岗位职责
2014/01/05 职场文书
建筑系毕业生自我鉴定
2014/01/24 职场文书
实验室的标语
2014/06/20 职场文书
学生无故旷课检讨书
2014/09/20 职场文书
红领巾广播站广播稿(3篇)
2014/09/20 职场文书
群众路线党员自我评议范文2014
2014/09/24 职场文书
大学生毕业个人总结
2015/02/15 职场文书
安全生产协议书
2016/03/22 职场文书
使用pandas生成/读取csv文件的方法实例
2021/07/09 Python
利用python实时刷新基金估值(摸鱼小工具)
2021/09/15 Python
mysql 联合索引生效的条件及索引失效的条件
2021/11/20 MySQL