正则表达式修饰符(修饰符 可以在全局搜索中不区分大小写)

i(ignoreCase)执行对大小写不敏感的匹配

g (global)     执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)

m(multiline) 执行多行匹配

正则表达式模式

方括号用于查找某个范围内的字符

[abc]     查找方括号之间的任何字符

[^abc]  查找任何不在方括号之间的字符

[0-9]     查找任何从 0 至 9 的数字

[A-Z]    查找任何从大写 A 到大写 Z 的字符

[a-z]     查找任何从小写 a 到小写 z 的字符

[A-z]     查找任何从大写 A 到小写 z 的字符,即匹配所有的英文字母(不区分大小写)

[adgk]   查找给定集合内的任何字符

[^adgk] 查找给定集合外的任何字符

(red|blue|green) 查找任何指定的选项

(x|y)     查找任何以 | 分隔的选项

元字符是拥有特殊含义的字符

\uxxxx   查找以十六进制数 xxxx 规定的 Unicode 字符

.           查找单个字符,除了换行和行结束符之外的任意字符

\n        查找换行符

\f         查找换页符

\r         查找回车符

\t         查找制表符

\v        查找垂直制表符

(总结下面的这些元字符小写为查找是的情况,大写就为查找不是的情况)

\b         匹配单词边界

\B         匹配非单词边界

\w        查找单词字符,即匹配一个数字、下划线或字母字符,等价于[A-Za-z0-9_]

\W        查找非单词字符,等价于[^A-Za-z0-9_]

\d         查找数字,即匹配一个数字字符,等价于[0-9]

\D        查找非数字字符,即除了数字之外的任何字符,等价于[^0-9]

\s         查找空白字符

\S        查找非空白字符

量词

n+       匹配任何包含至少一个 n 的字符串,即“ + ”  表示匹配前一项1次或多次,等价于{1,}

n-        匹配任何包含零个或多个 n 的字符串

n?        匹配任何包含零个或一个 n 的字符串,即“ ? ”  表示匹配前一项0次或1次,也就是前一项是可选的,等价于{0,1}

n*        匹配任何包含零个或多个n的字符串,即“ * ”  表示匹配前一项0次或多次,等价于{0,}

n{X}    匹配包含 X 个 n 的序列的字符串,即{n} 表示匹配前一项n次

n{X,Y} 匹配包含 X 或 Y 个 n 的序列的字符串,即{n,m} 表示匹配前一项至少n次,但是不超过m次

n{X,}   匹配包含至少 X 个 n 的序列的字符串,即{n,} 表示匹配前一项n次,或多次

n$        匹配任何结尾为 n 的字符串," $ " 匹配字符串的结束

^n       匹配任何开头为 n 的字符串," ^ " 匹配字符串的开始

?=n      匹配任何其后紧接指定字符串 n 的字符串

?!n       匹配任何其后没有紧接指定字符串 n 的字符串

/.../       代表一段正则的开始和结束

转义字符方式

\    反斜杠,用于将上述具有特殊含义的符号转义成普通符号,例如你需要匹配$美元符号,而不是行尾,你可以写成“ \$ ”即可

RegExp 对象方法

exec      检索字符串中指定的值。返回找到的值,并确定其位置

用于检索字符串中的正则表达式的匹配。如果字符串中有匹配的值返回该匹配值,否则返回 null。如:

 <script>
var str="Hello world!";
//查找"Hello"
var patt=/Hello/g;
var result=patt.exec(str);
document.write("返回值: " + result);
//查找 "W3Cschool"
patt=/W3Cschool/g;
result=patt.exec(str);
document.write("<br>返回值: " + result);
</script>

这样子返回的在HTML输出的就是:

返回值: Hello
                                    返回值: nul

------------------------------------------------------------------------------------

test       检索字符串中指定的值。返回 true 或 false

 <script>
var str="Hello world!";
//查找"Hello"
var patt=/Hello/g;
var result=patt.test(str);
document.write("返回值: " + result);
//查找 "W3Cschool"
patt=/W3Cschool/g;
result=patt.test(str);
document.write("<br>返回值: " + result);
</script>

这样子返回的在HTML输出的就是:

返回值: true
                                    返回值: false

------------------------------------------------------------------------------------

search   检索与正则表达式相匹配的值的位置,返回数字,如果没有找到则返回-1

如:

 <p id="demo">单击显示查找的位置</p>
<button onclick="myFunction()">点我</button>
<script>
function myFunction(){
var str="Visit W3CSchool!";
var n=str.search("W3CSchool");
document.getElementById("demo").innerHTML=n;
}
</script>

像这样的返回值n=6

-----------------------------------------------------------------------------------

match    找到一个或多个正则表达式的匹配,返回找到的值

可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配,如:

 <p id="demo">单击按钮显示matches</p>
<button onclick="myFunction()">点我</button>
<script>
function myFunction(){
var str="The rain in SPAIN stays mainly in the plain";
var n=str.match(/ain/g);
document.getElementById("demo").innerHTML=n;
}
</script>

像这样的最终显示输出的就是 ain,ain,ain

----------------------------------------------------------------------------------

replace  替换与正则表达式匹配的子串

用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串,如:

 <p>单击按钮将段落中“Microsoft”替换成“W3CSchool”:</p>
<p id="demo">Visit Microsoft!</p>
<button onclick="myFunction()">点我</button>
<script>
function myFunction(){
var str=document.getElementById("demo").innerHTML;
var n=str.replace("Microsoft","W3CSchool");
document.getElementById("demo").innerHTML=n;
}
</script>

这样子

Visit Microsoft!这个就会被改变为:Visit W3CSchool!

----------------------------------------------------------------------------------

split       把字符串分割为字符串数组

按照你所定义的方式将匹配的字符串分割成数组,如:

var str="How are you doing today?";
                                                           var n=str.split(" ");

这样返回的就是:[How,are,you,doing,today?]  按照所定义的空格将str里的值分割成了数组。

JavaScript学习笔记- 正则表达式常用字符集及方法的更多相关文章

  1. JavaScript学习笔记- 正则表达式常用验证

    <div> <h1>一.判断中国邮政编码匹配</h1> <p>分析:中国邮政编码都是6位,且为纯数字</p> <div>邮政编码 ...

  2. Java程序猿的JavaScript学习笔记(9—— jQuery工具方法)

    计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...

  3. JavaScript学习笔记-用于模式匹配的String方法

    用于模式匹配的String方法:   String支持4种使用正则表达式的方法:           seach()用于检索,参数是一个正则表达式,返回第一个与之匹配的子串的位置,找不到则返回-1,如 ...

  4. JavaScript学习笔记-正则表达式(RegExp对象)

    正则表达式(RegExp对象)   1.正则表达式字面量,在脚本加载后编译.若你的正则表达式是常量,使用这种方式可以获得更好的性能,重复使用时不会重新编译: 2.使用构造函数创建的RegExp,提供了 ...

  5. JavaScript学习笔记-正则表达式(语法篇)

    正则表达式的模式规则是由一个字符系列组成的,包括所有字母和数字在内;大多数的字符(所有字母和数字)都是按字符的直接量来描述带匹配的字符;一些具有特殊语义的字符按照其特殊语义来进行匹配,有些字符需要通过 ...

  6. JavaScript学习笔记(1)字符串方法

    字符串方法 length 属性返回字符串的长度 var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; var sln = txt.length; inde ...

  7. Java程序猿的JavaScript学习笔记(5——prototype和Object内置方法)

    计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...

  8. Java程序猿的JavaScript学习笔记(汇总文件夹)

    最终完结了,历时半个月. 内容包含: JavaScript面向对象特性分析,JavaScript高手必经之路. jQuery源代码级解析. jQuery EasyUI源代码级解析. Java程序猿的J ...

  9. Java程序猿的JavaScript学习笔记(8——jQuery选择器)

    计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...

随机推荐

  1. docker-7 docker在阿里云的使用

    在传统模式中,开发团队在开发环境中完成软件开发,自己做了一遍单元测试, 测试通过,ᨀ交到代码版本管理库.运维把应用部署到测 试环境, QA 进行测试,没问题后通知部署人员发布到生产环境. 在上述过程中 ...

  2. 工作中常用的Linux命令:crontab命令

    本文链接:http://www.cnblogs.com/MartinChentf/p/6060252.html (转载请注明出处) crontab是一个用来设置.删除或显示供守护进程cron执行的定时 ...

  3. Python 变量类型

    Python 变量类型 变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. 因此,变量可以指定不同的数据 ...

  4. c++11 新特性之lambda表达式

    写过c#之后,觉得c#里的lambda表达式和delegate配合使用,这样的机制用起来非常爽.c++11也有了lambda表达式,形式上有细小的差异.形式如下: c#:(input paramete ...

  5. SSH 整合及注意事项

    Spring 整合 hibernate 配置 1. spring 配置管理datasource 及 sessionFactory 1) 引入相关jdbc配置文件. <context:proper ...

  6. 台湾辅仁大学的python教程笔记

    散记,因为主讲老师讲得也很乱..说课后的自习才是最重要的- 1.就这样,笔记看下.. 2. Modules 模组 很多模组放在一起就是一个packages 一个packages 一定有有__init_ ...

  7. OpenCV 之 图像平滑

    1  图像平滑 图像平滑,可用来对图像进行去噪 (noise reduction) 或 模糊化处理 (blurring),实际上图像平滑仍然属于图像空间滤波的一种 (低通滤波) 既然是滤波,则图像中任 ...

  8. jprofiler安装图解

    环境: 1.sun jdk1.6.0 2.jprofiler_windows_6_0_2.exe 安装 1. jdk, 安装略... 2. jprofiler安装 一路next 到Enter lice ...

  9. Zygote进程【1】——Zygote的诞生

    在Android中存在着C和Java两个完全不同的世界,前者直接建立在Linux的基础上,后者直接建立在JVM的基础上.zygote的中文名字为"受精卵",这个名字很好的诠释了zy ...

  10. jQuery实例

    1.$("ul li").fliter(":contains('佳能'),:contains('尼康'),:contains('奥林巴斯')").addClas ...