<script>//
// var i = new RegExp("dga","gi");
var i = new RegExp("dga","i");
var i = /dga/i; //基本上用这种方法写
//ignoreCase 忽略大小写
/* g (全文查找)
i (忽略大小写)
m(多行查找)
* */
//var i = new RegExp("模式字符串","标志");
alert(i.test("dGaIdjf"));
/* 和正则表达式相关的方法和属性
正则表达式对象的方法:
test,返回一个Boolean值,它指出在被查找的字符串中是否存在模式。如果存在返回true,否则就是false
exec,用正则表达式模式在字符串中运行查找,并返回包含该查找结果的一个数组
compile
正则表达式对象的属性
source,返回正则表达式模式的文本的副本。只读
lastIndex
$1...$9,
input($_),
lastMatch($&),
lastParen($+),
leftContext($~),
rightContext($'),
String对象一些和正则表达式相关的方法
match,找到一个或多个正则表达式的匹配
replace
search
split,
*
* */
负向预查,在任何不匹配Negative
lookahead matches the search string at any point where a string not matching pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如'Windows (?!95|98|NT|2000)' 能匹配 "Windows 3.1" 中的 "Windows",但不能匹配 "Windows 2000" 中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始
匹配 num,其中 num 是一个正整数。对所获取的匹配的引用。例如,'(.)\1' 匹配两个连续的相同字符。
\n
标识一个八进制转义值或一个后向引用。如果
\n 之前至少 n 个获取的子表达式,则 n 为后向引用。否则,如果 n 为八进制数字 (0-7),则 n 为一个八进制转义值。
\nm
标识一个八进制转义值或一个后向引用。如果
\nm 之前至少有is preceded by at least nm 个获取得子表达式,则 nm 为后向引用。如果 \nm 之前至少有 n 个获取,则 n 为一个后跟文字 m 的后向引用。如果前面的条件都不满足,若 n 和 m 均为八进制数字 (0-7),则 \nm 将匹配八进制转义值 nm。
\nml
如果 n 为八进制数字
(0-3),且 m 和 l 均为八进制数字 (0-7),则匹配八进制转义值 nml。
\un
匹配 n,其中 n 是一个用四个十六进制数字表示的
Unicode 字符。例如, \u00A9 匹配版权符号 (?)。
var osVersion = "Ubuntu 8";
var re = /^[a-z]+\s+\d+$/i; //+好表示多个^字符表示开始 $表示结束 \s表示一个或多个空格 制表符 回车 \d表示0-
alert(re.test(osVersion));
//--------------------------分组---------------------
var ree = /^([a-z]+)\s+(\d+)$/i; //此处加括号就是为了分组
alert(re.exec(osVersion));
alert("系统名称:"+/\w/.exec(osVersion)); //exec的返回值为数组
alert("版本号:"+/\d/.exec(osVersion));
var a = re.exec(osVersion);
alert(a[0]); //与整个正则表达式匹配的
alert(a[1]); //第一个分组
alert(a[2]); //第二个分组
</script>