3.1 正则表达式对象的创建方式
字面量的方式 var patt = /匹配规则/修饰符; / --> 边界的意思
new关键字 var patt = new RegExp(/匹配规则/,修饰符);
3.2 正则表达式对象中的方法
test() 检测指定字符串中是否含有某种匹配规则
exec() 检索字符串中指定的值。返回找到的值,并确定其位置
// 字面量的方式 var patt = /匹配规则/修饰符; / --> 边界的意思
//创建一个正则表达式,可以用来查看指定字符串中是否含有数字
// 字面量的方式 var patt = /匹配规则/修饰符; / --> 边界的意思
//创建一个正则表达式,可以用来查看指定字符串中是否含有数字
var patt = /[0-9]/; var str = "hello1234";
var str2 = "hello"; //test() 检测指定字符串中是否含有某种匹配规则 返回一个布尔值
var flag = patt.test(str);
console.log("flag:",flag);//flag: true flag = patt.test(str2);
console.log("flag:",flag);//flag: false // new关键字 var patt = new RegExp(/匹配规则/,修饰符);
var reg = new RegExp(/\d/);
console.log(reg.test(str));//true
console.log(reg.test(str2));//false
<script>
var str = "I Love China!!We are Chinese!!" //exec() 检索字符串中指定的值。返回找到的值,并确定其位置
var patt = /[Ch]/;
console.log(patt.exec(str));//["C", index: 7, input: "I Love China!!We are Chinese!!", groups: undefined] var patt2 = /Ch/;
console.log(patt2.exec(str));//["Ch", index: 7, input: "I Love China!!We are Chinese!!", groups: undefined] //字符串中可以使用正则表达式的方法
// match() 查找找到一个或多个正则表达式的匹配
console.log(str.match("Ch"));//["Ch", index: 7, input: "I Love China!!We are Chinese!!", groups: undefined]
console.log(str.match(patt2));//"Ch", index: 7, input: "I Love China!!We are Chinese!!", groups: undefined]
console.log(str.match(patt));//["C", index: 7, input: "I Love China!!We are Chinese!!", groups: undefined] var patt3 = /Ch/g; //exec方法中修饰符g无效
console.log(patt3.exec(str));//["Ch", index: 7, input: "I Love China!!We are Chinese!!", groups: undefined]
console.log(str.match(patt3));//(2) ["Ch", "Ch"] // replace() 在字符串中查找匹配的子串, 并替换与正则表达式匹配的子串
var str = "Hello boys and girls!";
console.log(str.replace(" ",","));//Hello,boys and girls!
console.log(str.replace(/\s/,","));//Hello,boys and girls!
console.log(str.replace(/\s/g,","));//Hello,boys,and,girls! // search() 查找与正则表达式相匹配的值 返回第一次出现的索引
console.log(str.indexOf("o"));//
console.log(str.indexOf("o",5));//
console.log(str.search("o"));//4 只有一个参数
console.log(str.search(/o/));// // split() 把字符串分割为字符串数组
console.log(str.split(" "));//["Hello", "boys", "and", "girls!"]
console.log(str.split(/\s/));//["Hello", "boys", "and", "girls!"]
</script>
3.4 修饰符
g global,执行全局匹配
i 忽略大小写
m 执行多行匹配
var str = "Hello 中国!!Hello 北京!!";
// 匹配中文:[\u4e00-\u9fa5]
// 是一个固定用法,中文只能在正则表达式里这样表示
var patt = /[\u4e00-\u9fa5]/g;
// g global,执行全局匹配
console.log(str.match(patt)); // i 忽略大小写
var patt2 = /[A-Z]/g;
console.log(str.match(patt2)); var patt3 = /[A-Z]/gi;
console.log(str.match(patt3)); // m 执行多行匹配
var str2 = "感谢大家光临,本人于\n10月1日上午在家观看国兵直播";
var patt4 = /^1/g; //^ 以指定规则开头
console.log(patt4.test(str2));//false var patt5 = /^1/gm;
console.log(patt5.test(str2));//true
3.5 匹配模式
[0-9]:查找任何从0至9的数字
[abc]:用于查找方括号之间的任何字符;方括号内的字符可以是任何字符或字符范围
[^abc]:查找任何不在方括号之间的字符 ^否定的意思
[a-z]:查找所有的小写字母
[A-Z]:查找所有的大写字母
[A-z]:查找所有的字母(大小写字母)
[0-9A-z]:包含所有的数字和字母(大小写字母)
例:var str="Is this all there is?";
var patt1=/[a-h]/g;
document.write(str.match(patt1));
结果: h,a,h,e,e
// [A-z]:查找所有的字母(大小写字母)
// [0-9A-z]:包含所有的数字和字母(大小写字母) var str = "Hello@!~-+=123$%^&*()rrr[]{},.4`56_<>\/\\"; var patt = /[A-z]/g; console.log(str.match(patt));// ["H", "e", "l", "l", "o", "^", "r", "r", "r", "[", "]", "_", "\"] var patt2 = /[A-Za-z]/g; console.log(str.match(patt2));//(8) ["H", "e", "l", "l", "o", "r", "r", "r"] var str = "hello world";
console.log(str.match(/[hor]/g));//(4) ["h", "o", "o", "r"]
console.log(str.match(/[^hor]/g));//(7) ["e", "l", "l", " ", "w", "l", "d"]
3.6 元字符
元字符(Metacharacter):拥有特殊含义的字符
.(点):代表任何的字符(除了换行和行结束符)
\w:任何字母、数字、下划线
\W:任何非字母、数字、下划线
\d:任何数字
\D:任何非数字
\s:空白字符
\S:非空白字符
\b:查找单词边界
\B:查找非单词边界
作为了解
\o:查找NULL字符
\n:查找换行符
\f: 查找分页符
\r:查找回车符
\t:查找制表符
\v:查找垂直制表符
3.7 量词
^n:匹配开头为n的字符串
n$:匹配结尾为n的字符串
n+:匹配任何包含至少一个n的字符串
n{x}: 匹配任何包含x个n的字符串
n{x,}: 匹配至少包含x个n的字符串
n{x, y}:匹配包含x到y个n的字符串
n*:匹配任何包含0个或者多个n的字符串
n?:匹配任何包含0个或1个n的字符串
?=n:匹配任何其后紧接指定字符串n的字符串
?!n:匹配任何其后没有紧接字符串n的字符串
正则表达式RegExp对象的更多相关文章
-
JavaScript学习笔记-正则表达式(RegExp对象)
正则表达式(RegExp对象) 1.正则表达式字面量,在脚本加载后编译.若你的正则表达式是常量,使用这种方式可以获得更好的性能,重复使用时不会重新编译: 2.使用构造函数创建的RegExp,提供了 ...
-
JavaScript -- 时光流逝(六):js中的正则表达式 -- RegExp 对象
JavaScript -- 知识点回顾篇(六):js中的正则表达式 -- RegExp 对象 1. js正则表达式匹配字符之含义 查找以八进制数 规定的字符. 查找以十六进制数 规定 ...
-
VBScript: 正则表达式(RegExp对象)
RegExp对象是VBScript中用于提供简单地正则表达式支持的对象.VBScript中所有和正则表达式有关的属性和方法都有这个对象有关联. 一.RegExp对象的属性和方法(三个属性,三个方法) ...
-
javascript正则表达式 —— RegExp 对象
定义 RegExp RegExp 对象用于存储检索模式. 通过 new 关键词来定义 RegExp 对象.以下代码定义了名为 patt1 的 RegExp 对象,其模式是 "e": ...
-
JavaScript正则表达式-RegExp对象
RegExp对象方法 exec():与String对象的match()方法功能相同. 参数为被搜索字符串.返回数组或null. test():与String对象的search()方法功能相同. 参数为 ...
-
javascript类型系统——正则表达式RegExp类型
× 目录 [1]对象 [2]实例属性 [3]静态属性[4]实例方法 前面的话 前面已经介绍过javascript中正则表达式的基础语法.javascript的RegExp类表示正则表达式,String ...
-
正则表达式(RegExp)
正则表达式(RegExp) 如何按一定规则快速查找到需要找寻的内容,js的设计者们给我们提供了一个叫正则表达式(RegExp对象),专门用于处理类似问题. RegExp对象表示正则表达式,它是对字符串 ...
-
VBS基础篇 - RegExp 对象
正则表达式(RegExp)对象下面的代码说明了RegExp对象的用法: Function RegExpTest(patrn, strng) Dim regEx, Match, Matches '创建变 ...
-
JavaScript数据类型 正则表达式RegExp类型
前言 上一篇文章已经介绍了正则表达式的基础语法.javascript的RegExp类表示正则表达式,String和RegExp都定义了方法,使用正则表达式可以进行强大的模式匹配和文本检索与替换.本文将 ...
随机推荐
-
Windows10有获取通知,但是就不推送的解决方法
1. 删除“C:\Windows\SoftwareDistribution\Download”下所有文件2. 以管理员身份运行命令提示符,输入“wuauclt.exe /updatenow”并回车(注 ...
-
由于客户端检测到一个协议错误 代码0x1104
重新连接N次都还是这个错误提示,最后再重起电脑,还是没用.研究了一下错误终于解决了. 首先检查远程连接端口对不对?Windows远程默认的连接端口是3389,一般大家连接时直接输入IP或域名就可以连接 ...
-
Codeforces 653D Delivery Bears(最大流)
题目大概说有一张n个点m条边的简单有向图,每条边只能允许一定总量的货物通过.要让x只熊从1点到n点运送货物,每只熊都要运送且运送的货物重量都一样,求该重量的最大值. 二分重量判断是否成立. 如果已知重 ...
-
jQuery右键菜单contextMenu使用实例
在最近项目中需要频繁的右键菜单操作.我采用了contextMenu这款jQuery插件. 参考网址:http://www.jb51.net/article/58709.htm 官网demo http: ...
-
在bootstrap ace样式框架上修改的后台管理型模板(Tab页后台管理模板)
后台管理模板开始用frameset布局,但是有时候会遮挡比如上面导航或者左边导航的二级三级弹出菜单,因为宽度被限制了,所以有时候就用easyui或者ext的,但是样式不好看,然后看到了bootstra ...
-
Flesch Reading Ease (poj 3371)
题意: 给出一篇规范的文章,求其 句子数.单词数 和 音节数把这3个值代入题目给出的公式,输出其结果,保留2位小数. 标记单词分隔符: 逗号(,) 和 空格( ) 句子分隔符:句号(.) 问号(?) ...
-
Android java程序获取assets资产文件
AssetManager assetManager=this.getAssets(); inputStream = assetManager.open("test.xml");
-
74、django之ajax补充
之前的ajax使用都是依据jquery来使用的,本篇会先分析ajax的原生的js代码实现,还有jsonp的介绍,与OMR的一些遗漏补充. 本篇导航: js实现的ajax 同源策略与Jsonp 一.js ...
-
MyBatis进阶(一)运行原理
初次学习MyBatis,自己花了不少时间,理解一件事物是需要时间的.经过多次反复的理解,你的认知能力就可以得到提升.以下是学习MyBatis的一些理解认识,技术理解上若有不当之处,敬请朋友们提出宝贵意 ...
- AI-终极算法-遗传算法