正则表达式基础
AS3.0中引进了正则表达式。正则表达式是用于验证文本值是否符合特定模式。
正则表达式有四个部分。1元子符。2元序列。3标志。4数量表达符。
可以这样看patternRegExp=/匹配字符串元字符元序列/标志当然顺序可能不完全是这样.别把他想的太复杂其实他就是个组合。
现在我们来看看元字符:^$\.*+?()[]{}|
前面说的是转义字符串的使用
1.^的用法:匹配字符串的开头
varpattern:RegExp=/^小虫/;
varstr:String="小虫是好人";
trace(str,"isvalid:",pattern.test(str));小虫是好人isvalid:true
2.$的用法:匹配字符串的结尾
varpattern:RegExp=/lizhen$/;
varstr:String="Mynameislizhen";
trace(str,"isvalid:",pattern.test(str));小虫是好人isvalid:true
仔细看一下两个符号在匹配字符串中的位置,注意:如果同时使用^符号和$符号,将进行精确匹配。
3.\的用法:匹配字符串的结尾
如果匹配字符串中包含有"/"比如1/2的时候,使用如下定义
varpattern:RegExp=/1\/2/;
varstr:String="1/2是多少?";
trace(str,"isvalid:",pattern.test(str));1/2是多少?isvalid:true
如果匹配字符串中包含有""比如"lizhen"的时候,使用如下定义
varpattern:RegExp=/\"lizhen"/;
varstr:String="Mynameis\"lizhen\"";
trace(str,"isvalid:",pattern.test(str));Mynameis"lizhen"isvalid:true
4.*的用法:匹配0个或多个前面的字符.
varpattern:RegExp=/我的*/;
varstr:String="我的我的我的";或者varstr:String="我的"
trace(str,"isvalid:",pattern.test(str));我的我的...isvalid:true
5.+的用法:匹配至少一个前面的字符
varpattern:RegExp=/我的+/;
varstr:String="我的ID是...";或者varstr:String="我的"
trace(str,"isvalid:",pattern.test(str));我的ID是...isvalid:true
注意+和*的区别。如果varstr:String="我的"那就会显示false
6.?的用法:匹配0个或1个前面的字符
varpattern:RegExp=/天?/;
varstr:String="一天快乐";或者varstr:String="天天快乐";
trace(str,"isvalid:",pattern.test(str));一天快乐isvalid:true
7..的用法:匹配任意单个字符
varpattern:RegExp=/天./;
varstr:String="一天快乐";或者varstr:String="天天快乐";
trace(str,"isvalid:",pattern.test(str));一天快乐isvalid:true
8.[]的用法:匹配某一个范围而不局限于具体的单个字符
varpattern:RegExp=/[a-z]/
varstr:String="a"
trace(str,"isvalid:",pattern.test(str));aisvalid:true
9.()的用法:这个就相当于是个集合。
varpattern:RegExp=/([a-z][A-Z][0-9])+/比如说这个就是定义了一个四个字符的字符串第一个字符是a到z之间的字符第二个是A到Z之间的字符第三个是0-9之间的字符,第四个重复前面的数字。
varstr:String="aD77aaaaaaaaaaaaaaaa"
trace(str,"isvalid:",pattern.test(str));aD77aaaaaaaaaaaaaaaaisvalid:true
10.|的用法:匹配左边或者右边的字符。
varpattern:RegExp=/小虫|lizhen/
varstr:String="小虫是好人"
trace(str,"isvalid:",pattern.test(str));小虫是好人isvalid:true
现在说说元序列元序列是在正则表达式模式中具有特殊含义的字符序列{n}{n,}{n,m}\b\B\d\D\f\n\r\s\S\t\unnnn\v\w\w\W\xnn
1.{n}的用法:匹配恰好n个(n为非负整数)前面的字符。
varpattern:RegExp=/(小虫){2}/对象中连续出现2次小虫.注意下(),如果用varpattern:RegExp=/小虫{2}/那么就是varstr:String="小虫虫"
varstr:String="小虫小虫"
trace(str,"isvalid:",pattern.test(str));小虫小虫isvalid:true.
2.{n,}的用法:匹配恰好n个(n为非负整数)或更多个前面的字符。
3.{n,m}的用法:匹配至少n个,至多m个前面的字符。
4.\b的用法:匹配单词字符和非单词字符之间的位置只能放在开头和结尾。NN的,他不支持中文.用中文还是用^.
varpattern:RegExp=/\b小虫/
varpattern:RegExp=/.mp3\b/
varstr:String="小虫.mp3"可以判断是否是mp3格式。
trace(str,"isvalid:",pattern.test(str));小虫.mp3isvalid:true
5.\B的用法:匹配对象必须位于目标字符串的开头和结尾两个边界之内,即匹配对象既不能作为目标字符串的开头,也不能作为目标字符串的结尾和\b相反。
varpattern:RegExp=/\B是/
varstr:String="我是虫子"
trace(str,"isvalid:",pattern.test(str));我是虫子isvalid:true
6.\d的用法:用于匹配从0到9的数字;
varpattern:RegExp=/\b\d/开头的第一字符必须为数字
varstr:String="900/元"
trace(str,"isvalid:",pattern.test(str));900/元isvalid:true
7.\D的用法:匹配除数字以外的任何字符
varpattern:RegExp=/\b\D/开头的第一字符必须不为数字
varstr:String="a900/元"
trace(str,"isvalid:",pattern.test(str));a900/元isvalid:true
8.\f的用法:匹配换页符DOS操作时代的概念
9.\n的用法:匹配换行符
varpattern:RegExp=/\n/
varstr:String="欢迎来到虫子的空间!\n"
trace(str,"isvalid:",pattern.test(str));
10.\r的用法:匹配回车符
varpattern:RegExp=/\r/
varstr:String="欢迎来到虫子的空间!\r"
trace(str,"isvalid:",pattern.test(str));
11.\s的用法:匹配任何空白字符(空格、制表符、换行符或回车符)
varpattern:RegExp=/\s/
varstr:String="欢迎来到虫子的空间!"
trace(str,"isvalid:",pattern.test(str));欢迎来到虫子的空间!isvalid:true
12.\S的用法:匹配除空白字符以外的任何字符
varpattern:RegExp=/\S/
varstr:String="欢迎来到虫子的空间!"
trace(str,"isvalid:",pattern.test(str));欢迎来到虫子的空间!isvalid:true
13.\t的用法:匹配制表符DOS操作时代的概念
14.\unnnn用法:匹配字符代码由十六进制数字nnnn指定的Unicode字符。例如,\u263a是一个笑脸字符
varpattern:RegExp=/\u263a/
varstr:String="欢迎来到虫子的空间!\u263a"
trace(str,"isvalid:",pattern.test(str));欢迎来到虫子的空间!☺isvalid:true
15.\v用法:匹配垂直换页符DOS操作时代的概念
16.\w用法:匹配单词字符(A-Z、a-z、0-9或_)。请注意,\w不匹配非英文字符,如é、ñ或ç。他和[]是有区别的。
varpattern:RegExp=/^\w/
varstr:String="a虫子"
varstr:String="0虫子"
varstr:String="A虫子"
varstr:String="_虫子"
trace(str,"isvalid:",pattern.test(str));_虫子isvalid:true
17.\W用法:匹配除单词字符以外的任何字符。
varpattern:RegExp=/^\W/
varstr:String="虫子"
trace(str,"isvalid:",pattern.test(str));虫子isvalid:true
18.\xnn用法:匹配具有指定ASCII值(由十六进制数字nn定义)的字符。
varpattern:RegExp=/^\x41/;"A"
varstr:String="ABCD";
trace(str,"isvalid:",pattern.test(str));ABCDisvalid:true
标志:标志可以作为正则表达式对象属性进行访问。正则表达式有五个标志:gimsx
1.g的用法:如果不指定g,那么在查找的时候只会返回一个。如:
varstr:String="shesellsseashellsbytheseashore.";
varpattern:RegExp=/sh\w*/;
trace(str.match(pattern))输出:she
指定g后:
varstr:String="shesellsseashellsbytheseashore.";
varpattern:RegExp=/sh\w*/g;
trace(str.match(pattern))输出:she,shells,shore
2.i的用法:默认情况下,正则表达式匹配区分大小写。如果设置i(ignoreCase)标志,将忽略区分大小写。
varstr:String="ShesellsseaShellsbytheseaShore.";
varpattern:RegExp=/sh\w*/gi;
trace(str.match(pattern))输出:She,Shells,Shore
3.m的用法:匹配"行"的开头和结尾.注意这里的行只有\n字符表示行的结束,其余的都不行。包括\r。比如:
varstr:String="ShesellsseaShellsbytheseaShore.\n";
str+="She'syourmother"
varpattern:RegExp=/^sh\w*/gim;
trace(str.match(pattern))输出:She,She
也可以在结尾使用.比如:
varstr:String="ShesellsseaShellsbytheseaShore.\n";
str+="She'syourmother.\n"
varpattern:RegExp=/\n\$\w*/gim;
trace("====="+str.match(pattern))输出:=====
4.s的用法:用点来匹配换行符
varstr:String="<p>Test\n";
str+="Multiline</p>";
varre:RegExp=/<p>.*?<\/p>/s;
trace(str.match(re));
5.x的用法:在正则表达式中使用x(extended)标志时,则会忽略在模式中键入的所有空格。
varstr:String="lizhen";
varre:RegExp=/lizhen/x
trace(str.match(re));输出:lizhen