﻿/*******JS对象RegExp***********/

RegExp对象
语法:  new RegExp(pattern, attributes);

参数: 
参数 pattern 是一个字符串，指定了正则表达式的模式或其他正则表达式;
参数 attributes 是一个可选的字符串，包含属性 "g"、"i" 和 "m"，分别用于指定全局匹配、区分大小写的匹配和多行匹配。ECMAScript 标准化之前，不支持 m 属性。如果 pattern 是正则表达式，而不是字符串，则必须省略该参数;

返回值:
一个新的 RegExp 对象，具有指定的模式和标志。如果参数 pattern 是正则表达式而不是字符串，那么 RegExp() 构造函数将用与指定的 RegExp 相同的模式和标志创建一个新的 RegExp 对象。
如果不用 new 运算符，而将 RegExp() 作为函数调用，那么它的行为与用 new 运算符调用时一样，只是当 pattern 是正则表达式时，它只返回 pattern，而不再创建一个新的 RegExp 对象;

修饰符:
i  执行对大小写不敏感的匹配;
g  执行全局匹配（查找所有匹配而非在找到第一个匹配后停止）;
m  执行多行匹配;
例:
1对the进行全局搜索
new RegExp(/the/g);
2对the进行全局且大小写不敏感的搜索
new RegExp(/the/gi);

属性:
global  RegExp对象是否具有标志g,布尔值;
ignoreCase  RegExp 对象是否具有标志i,布尔值;
lastIndex  该属性存放一个整数，它声明的是上一次匹配文本之后的第一个字符的位置(下次匹配的起始位置);
multiline  RegExp 对象是否具有标志m,布尔值;
source   正则表达式的源文本;

方法:
compile  编译正则表达式;
语法:RegExpObject.compile(regexp,modifier);
参数:regexp	正则表达式;
     modifier  规定匹配的类型。"g" 用于全局匹配，"i" 用于区分大小写，"gi" 用于全局区分大小写的匹配

exec   检索字符串中指定的值。返回找到的值，并确定其位置;
语法:RegExpObject.exec(string);
参数:string	必需,要检索的字符串;
返回值:返回一个数组，其中存放匹配的结果。如果未找到匹配，则返回值为 null;

test   检索字符串中指定的值,返回 true或false;
语法:RegExpObject.test(string);
参数:string	要检测的字符串;
返回值:如果字符串string中含有与RegExpObject匹配的文本,则返回true,否则返回false;

支持正则表达式的String对象的方法:
search  检索与正则表达式相匹配的值;
语法:stringObject.search(regexp);
参数:regexp参数可以是需要在 stringObject 中检索的子串，也可以是需要检索的 RegExp 对象;
返回值:stringObject 中第一个与 regexp 相匹配的子串的起始位置,如果没有找到任何匹配的子串，则返回 -1;

match 找到一个或多个正则表达式的匹配;
语法:stringObject.match(searchvalue);
     stringObject.match(regexp);
参数:searchvalue 规定要检索的字符串值。
     regexp  规定要匹配的模式的 RegExp 对象。如果该参数不是 RegExp 对象，则需要首先把它传递给 RegExp 构造函数，将其转换为 RegExp 对象;
返回值:存放匹配结果的数组,该数组的内容依赖于 regexp 是否具有全局标志 g;

replace	替换与正则表达式匹配的子串,用于在字符串中用一些字符替换另一些字符，或替换一个与正则表达式匹配的子串;
语法:stringObject.replace(regexp/substr,replacement);
参数:regexp/substr 规定子字符串或要替换的模式的 RegExp 对象,请注意，如果该值是一个字符串，则将它作为要检索的直接量文本模式，而不是首先被转换为 RegExp 对象;
     replacement 一个字符串值,规定了替换文本或生成替换文本的函数;
返回值:一个新的字符串，是用 replacement 替换了 regexp 的第一次匹配或所有匹配之后得到的;

split  把字符串分割为字符串数组;
语法:stringObject.split(separator,howmany);
参数:separator 必需,字符串或正则表达式，从该参数指定的地方分割 stringObject;
     howmany  可选,该参数可指定返回的数组的最大长度。如果设置了该参数，返回的子串不会多于这个参数指定的数组。如果没有设置该参数，整个字符串都会被分割，不考虑它的长度;
返回值:一个字符串数组,该数组是通过在 separator 指定的边界处将字符串 stringObject 分割成子串创建的。返回的数组中的字串不包括 separator 自身,但是，如果 separator 是包含子表达式的正则表达式，那么返回的数组中包括与这些子表达式匹配的字串(但不包括与整个正则表达式匹配的文本);


注:以上文档参考于http://www.w3school.com.cn;
具体用法或示例请参考http://www.w3school.com.cn/js/jsref_obj_regexp.asp;