网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 设计资源 > 正则表达式 > 正文

javascript高级程序设计(第三版)学习笔记(一)正则表达式整理

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务
//true
alert(/[abc]/.test("gg"));//false
alert(/[^abc]/.test("a"));//false
alert(/[^abc]/.test("gg"));//true
alert(/[a-z]/.test("A"));//false
alert(/[A-Z]/.test("A"));//true
alert(/[abc|def]/.test("def"));//true

5、量词类:? * + {m} {m,n} {m,}
? 0或1次,放在量词后面,表示非贪婪品匹配,后面讲解
* 0或多次
+ 1或多次
{m} m次
{m,n} 至少m次,至多n次
{m,} 至少m次
复制代码 代码如下:
alert(/a?/.test("a"));//true
alert(/a?/.test("b"));//true 可以出现0次
alert(/a*/.test("a"));//true
alert(/a*/.test("b"));//true 可以出现0次
alert(/a+/.test("a"));//true
alert(/a+/.test("b"));//false
alert(/a{3}/.test("aaaaa"));//true
alert(/a{3}/.test("bbbbb"));//false 看到网上一些文章将,这里应该是0或者3次,这里楼主测试了几个浏览器,没有0次
alert(/a{3,5}/.test("aaaaa"));//true
alert(/a{3,5}/.test("bbbbbb"));//false
alert(/a{3,}/.test("aaaaa"));//true
alert(/a{3,}/.test("bbbbbb"));//false

6、边界类: ^ $ \b \B
^ 表示开头的标志,注意,不能紧接着左中括号,比如[^A-Z],这样表示非
$ 表示结尾的标志
\b 单词边界的标志,这样理解,它表示单词间那个看不到的东西,一侧是单词字符,一侧是非单词字符(包括各种标点和空白字符或中文)
\B 非单词边界的标志
复制代码 代码如下:
alert(/^居$/.test("居")); // 只限一个 居 true
alert(/^居$/.test("居居")); // 只限一个 居 false
alert(/\b啊/.test("a啊")); // true 思考一下:为什么这个和下面的结果不一样??
alert(/\b啊/.test("-啊")); // false
alert(/\B啊/.test("a啊")); // false
alert(/\B啊/.test("-啊")); // true

alert(/\b啊/.test("a啊")); 中,"a"和"啊"之间存在一个\b,因为\b的左边是"a",右边是"啊",所以能够匹配,为true;
相反:alert(/\b啊/.test("-啊")); 中,"啊"的左边有个\b,但是\b的左边是"-",不是单词字符,所以,不能匹配,为false
7、预定义类: \d \D \s \S \w \W .
\d 表示0-9的数字字符,相当于 [0-9]
\D 表示非0-9的数字字符,相当于 [^0-9]
复制代码 代码如下:
alert(/\d/.test("1"));//true
alert(/\D/.test("1"));//false

\s 空白字符,相当于 [\n\r\f\t\x0B ] ,注意空格也算
\S 非空白字符,相当于 [^\n\r\f\t\x0B ]
复制代码 代码如下:
alert(/\s/.test(" "));//true,空格也算
alert(/\S/.test("\n\r\f\t\x0B "));//false
alert(/\S/.test("\n\r\f\t\x0B \\"));//true

\w 单词字符,相当于 [a-zA-Z0-9_]
\W 非单词字符,相当于 [^a-zA-Z0-9_]
复制代码 代码如下:
alert(/\w/.test("afdas"));//true
alert(/\W/.test("afdas"));//false

(点). 表示除了\n和\r意外的任意字符,相当于 [^\n\r]
复制代码 代码如下:
alert(/./.test("\n\r"));//false ,只有这两个,其他的都能够被 . 匹配
alert(/./.test(" "));//true

8、RegExp实例方法:exec() test() match()
exec():返回第一个匹配项信息的数组,没能匹配成功返回null,用法:pattern.exec(str); 需要注意有没有"g"的不一样
复制代码 代码如下:
var re1 = /([a-z]*)bbb/;//贪婪
document.write(re1.test("abbbaabbb1234")+"<br />");//true
document.write(re1.exec("abbbaabbb1234")+"<br />");//abbbaabbb,abbbaa,这里贪婪匹配到abbaabbb,然后$1为abbbaa,所以此时返回abbbaabbb,abbbaa
var re1 = /([a-z]*)bbb/g;//贪婪
document.write(re1.test("abbbaabbb1234")+"<br />");//true
document.write(re1.exec("abbbaabbb1234")+"<br />");//null //因为设置了g标识,并为贪婪匹配,而上面的tes
设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师