js正则表达式

RegExp 对象的方法

RegExp 对象有 3 个方法:test()、exec() 以及 compile()。

test()

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

例子:

var patt1=new RegExp("e");

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

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

true

exec()

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

例子 1:

var patt1=new RegExp("e");

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

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

e

例子 2:

您可以向 RegExp 对象添加第二个参数,以设定检索。例如,如果需要找到所有某个字符的所有存在,则可以使用 "g" 参数 ("global")。

在使用 "g" 参数时,exec() 的工作原理如下:

  • 找到第一个 "e",并存储其位置
  • 如果再次运行 exec(),则从存储的位置开始检索,并找到下一个 "e",并存储其位置
var patt1=new RegExp("e","g");
do
{
result=patt1.exec("The best things in life are free");
document.write(result);
}
while (result!=null) 

由于这个字符串中 6 个 "e" 字母,代码的输出将是:

eeeeeenull

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

修饰符   方括号 方括号用于查找某个范围内的字符: 量词  
修饰符 描述 表达式 描述 量词 描述
i 执行对大小写不敏感的匹配 [abc] 查找方括号之间的任何字符 n+ 匹配任何包含至少一个 n 的字符串
g 执行全局匹配 [^abc] 查找任何不在方括号之间的字符 n* 匹配任何包含零个或多个 n 的字符串
m 执行多行匹配 [0-9] 查找任何从 0  9 的数字 n? 匹配任何包含零个或一个 n 的字符串
    [a-z] 查找任何从小写 a 到小写 z 的字符 n{X} 匹配包含 X  n 的序列的字符串
    [A-Z] 查找任何从大写 A 到大写 Z 的字符 n{X,Y} 匹配包含 X  Y  n 的序列的字符串
    [a-Z] 查找任何从小写 a 到大写 Z 的字符 n{X,} 匹配包含至少 X  n 的序列的字符串
    [adgk] 查找给定集合内的任何字符 n$ 匹配任何结尾为 n 的字符串
    [^adgk] 查找给定集合外的任何字符 ^n 匹配任何开头为 n 的字符串
    [red|blue|green] 查找任何指定的选项 ?=n 匹配任何其后紧接指定字符串 n 的字符串
        ?!n 匹配任何其后没有紧接指定字符串 n 的字符串


posted @ 2016-05-23 11:41  胡一生  阅读(292)  评论(0)    收藏  举报