码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript基础正则表达式的字面声明(012)

时间:2014-09-12 22:03:44      阅读:298      评论:0      收藏:0      [点我收藏+]

标签:blog   io   使用   java   ar   div   sp   cti   代码   

不出所料,正则表达式也是JavaScript的一种对象。构造正则表达式也有两种,一种是使用JavaScript内置的 new RegExp() 构造函数,另一种是我们推荐的字面声明方式:

// regular expression literal
var re = /\\/gm;

// constructor
var re = new RegExp("\\\\", "gm");

 可以看出字面声明法(Literal)更简洁,由于不必加引号,所以不用象构造函数里的参数那样需要用两个\来表示斜杠。
使用字面声明法来创建正则表达式时,后面的字母代表以下含义:

  • g—全局匹配
  • m—多行
  • i—大小写敏感

匹配和模式(pattern)加上后面的设置字母就组成了正则表达式的字面声明:

许多字符串的处理函数,如String.prototype.replace(),都接受正则表达式的字面声明作为参数:

var no_letters = "abc123XYZ".replace(/[a-z]/gi, "");
console.log(no_letters); // 123

 另外一个使用字面声明和构造函数生成正则表达式的区别是,当这个正则表达式对象被函数作为返回值时,字面声明总是保证相同的对象被返回,则构造函数返回的是内容相同的但个体不同的对象。考虑下面的代码:

function getRE() {
var re = /[a-z]/;
re.foo = "bar";
return re;
}
var reg = getRE(),
re2 = getRE();

console.log(reg === re2); // true
reg.foo = "baz";
console.log(re2.foo); // "baz"

 如果把var re = /[a-z]/;这里换作new RegExp(),那么console.log(reg === re2);将返回false。

 

JavaScript基础正则表达式的字面声明(012)

标签:blog   io   使用   java   ar   div   sp   cti   代码   

原文地址:http://www.cnblogs.com/Bryran/p/3969131.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!