正则表达式对象的方法

test,返回一个 Boolean 值,它指出在被查找的字符串中是否存在模式。如果存在则返回 true,否则就返回 false。
var str = "AA";
var re = /aa/i; //i表示忽略大小写
alert(re.test(str));//true
exec,用正则表达式模式在字符串中运行查找,并返回包含该查找结果的一个数组。
var str= "1232ew4r";
var re=/^(\d+).*(\d+).*$/i; //^表示字符开始位置,$表示字符串结束位置
arr = re.exec(str);
alert(arr[0]);//将str完整输出,因为整个字符串刚好匹配re
alert(arr[1]);// 1232
alert(arr[2]);//4
compile,把正则表达式编译为内部格式,从而执行得更快。当多次调用同一个正则表达式时,可以使用这个
RegExp regexp.compile(pattern[, flags]) 以数: regexp 正则表达式的名称,可以是变量名或文字串。
pattern 正则表达式的定义文本。 flags 如果指定的话,可以是下面其中的一个: "g": 匹配所有可能的字串
"i": 忽略大小写 "gi": 匹配所有可能的字串及忽略大小写
regexp.test regexp.exec 等
正则表达式对象的属性

source,返回正则表达式模式的文本的复本。只读。
var re = /[a-z]/i;
alert(re.source);//将[a-z]字符串输出
//请注意,直接alert(re)会将正则表达式连同前向斜线与标志输出,这是re.toString方法定义的

lastIndex,返回字符位置,它是被查找字符串中下一次成功匹配的开始位置。
var re = /[A-Z]/;
//exec方法执行后,修改了re的lastIndex属性,
var str = "Hello,World!!!";
var arr = re.exec(str);
alert(re.lastIndex);//0,因为没有设置全局标志
re = /[A-Z]/g;
arr = re.exec(str);
alert(re.lastIndex);//1

String对象的一些和正则表达式有关的方法
match,找到一个或多个正则表达式的匹配。 var str = "My name is CJ.Hello everyone!";
var re = /[A-Z]/;//匹配所有大写字母
var arr = str.match(re);//返回数组
alert(arr);//数组中只会包含一个M,因为我们没有使用全局匹配
re = /[A-Z]/g;
arr = str.match(re);
alert(arr);//M,C,J,H
//从字符串中抽取单词
re = /\b[a-z]*\b/gi;//\b表示单词边界
str = "one two three four";
alert(str.match(re));//one,two,three,four
replace,替换与正则表达式匹配的子串。
var re = /[a-z]$/;
var str = "ab\ncdef";
alert(str.replace(re,"#"));//ab\ncde#
re =/[a-z]$/m; //m 表示多行查询,上面字符串里有换行标志
alert(str.replace(re,"#"));//a#\ncde#
search,检索与正则表达式相匹配的值。
str = "My age is 18.Golden age!";
re = /\d+/;
alert(str.search(re));//返回查找到的字符串开始下标10
//注意,因为查找本身就是出现第一次就立即返回,所以无需在search时使用g标志
//下面的代码虽然不出错,但g标志是多余的
split,把字符串分割为字符串数组。
str = "a_db-c";//用户以他喜欢的方式加分隔符s
re=/[^a-z]/i;//前面我们说^表示字符开始,但在[]里它表示一个负字符集
//匹配任何不在指定范围内的任意字符,这里将匹配除字母处的所有字符
arr = str.split(re);//仍返回["a","bd","c"];

参考链接:http://www.iteye.com/topic/481228

标签: none

评论已关闭