js 正则表达式 07-28

一、创建正则表达式

创建正则表达式和创建字符串类似 , 创建正则表达式提供了两种方法 , 一种是采用 new运算符,另一个是采用字面量方式。
RegExp 对象的方法
RegExp 对象有 3 个方法:test()、exec() 以及 compile()。

 var dog = new RegExp('dog'); // 第一个参数字符串 
  var dog = new RegExp('dog', 'ig'); // 第二个参数可选模式修饰符 

var dog = /dog/; 
  var dog = /dog/ig; //字面量方式。

RegExp 对象包含两个方法 : test() 和 exec() , 功能基本相似 , 用于测试字符串匹配 。

test()方法在字符串中查找是否存在指定的正则表达式并返回布尔值 , 如果存在则返回 true , 不存在则返回 false 。

exec() 方法也用于在字符串中查找指定正则表达式,如果 exec() 方法执行成功,则返回包含该查找字符串的相关信息数组。如果执行失败,则返回 null 。

虽然创建正则表达式对象比较简单,但真正复杂的却是用正则语法描述的模式信息。接下来,我们分几个小节分别探讨一些模式:
二、字符串的正则表达式方法

例如:

var myPattern = /dog/ig;var theStr = "this is a dog,that is a dog!"console.log(theStr.match(myPattern)); //["dog", "dog"] 
var myPattern = /dog/i;var theStr = "this is a dog,that is a dog!"console.log(theStr.search(myPattern)) //10 
var myPattern = /dog/i; //注意没有设置全局,如果设置全局,结果为:this is a Cat,that is a Cat!var theStr = "this is a dog,that is a dog!"console.log(theStr.replace(myPattern,"Cat")); //this is a Cat,that is a dog! 
var myPattern = /\s/ig;var theStr = "this is a dog,that is a dog!"console.log(theStr.split(myPattern)); //["this", "is", "a", "dog,that", "is", "a", "dog!"],这个加不加全局g没有影响! 
二、直接量字符 
在正则表达式中,所有字母字符和数字都是按照直接量与自身匹配的。同时,正则表达式还通过反斜杠“\”加字母来支持某些非字母的字符。见下面的匹配列表: 
字符        匹配 
字母和数字     自身 例如: /a/ 匹配 字母 a 
\o         NUL字符 
\t         制表符 
\n         换行符 
\v         垂直制表符 
\f         换页符 
\r          回车 

test()
test() 方法检索字符串中的指定值。返回值是 true 或 false。
例子:

var patt1=new RegExp("e");

document.write(patt1.test("The best things in life are free")); 
true

exec()
exec() 方法检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 null。
例子 1:

var patt1=new RegExp("e");

document.write(patt1.exec("The best things in life are free")); 

由于该字符串中存在字母 "e",以上代码的输出将是:

e

compile()
compile() 方法用于改变 RegExp。
compile() 既可以改变检索模式,也可以添加或删除第二个参数。
例子:

var patt1=new RegExp("e");

document.write(patt1.test("The best things in life are free"));

patt1.compile("d");

document.write(patt1.test("The best things in life are free"));

由于字符串中存在 "e",而没有 "d",以上代码的输出是:

truefalse

你可能感兴趣的:(js 正则表达式 07-28)