JavaScript入门教程

JavaScript简介
JavaScript语法基础
JavaScript流程控制
JavaScript函数
面向对象编程
JavaScript事件
JavaScript DOM
正则表达式
JavaScript BOM
AJAX

专题分析

浏览器兼容性
JS优化
Web前端开发规范
编辑器推荐
总结和笔记

学习助手

对象参考手册
ECMAScript分析
数据中心
QQ交流群

Javascript创建正则表达式

创建一个正则表达式有两种方式,一种是借助 RegExp 对象来创建,另一种方式是使用正则表达式字面量来创建。在 JavaScript 内部的其他对象中,也有对正则表达式的支持,比如 String 对象的 replace,match 等,我们可以分别来看:
  • 使用字面量:
        var regex = /pattern/;
  • 使用 RegExp 对象:
        var regex = new RegExp("pattern", switchs);

而正则表达式的一般形式描述为:
    var regex = /pattern/[switchs];

这里的开关(switchs)有以下三种:
修饰符 描述
i 忽略大小写开关
g 全局搜索开关
m 多行搜索开关(重定义^与$的意义)

比如,/java/i 就可以匹配 java/Java/JAVA,而/java/则不可。而 g 开关用来匹配整个串中所有出现的子模式,如/java/g 匹配”javascript&java”中的两个”java”。而 m 开关定义是否多行搜索,比如:
    var pattern = /^javascript/;
    print(pattern.test("java\njavascript"));//false
    pattern = /^javascript/m;
    print(pattern.test("java\njavascript"));//true

RegExp 对象的方法:
方法名 描述
test() 测试串中是否有合乎模式的匹配
exec() 对串进行匹配
compile() 编译正则表达式

RegExp 对象的 test 方法用于检测字符串中是否具有匹配的模式,而不关心匹配的结果,通常用于测试,如上边提到的例子:
    var variable = /[a-zA-Z_][a-zA-Z0-9_]*/;
    print(variable.test("hello"));//true
    print(variable.test("world"));//true
    print(variable.test("_main_"));//true
    print(variable.test("0871"));//false

而 exec 则通过匹配,返回需要分组的信息,在分组及引用小节中我们已经做过讨论,而compile 方法用来改变表达式的模式,这个过程与重新声明一个正则表达式对象的作用相同,在此不作深入讨论。