AS3
中的正则表达式
一、
定义方式,可以有两种
var
pattern1:RegExp
=
new
RegExp(
"
test-\\d
"
,
"
i
"
);
var
pattern2:RegExp
=
/
test
-
\d
/
i;
1)
使用
new
来新建一个
RegExp
对象,其中参数为
1
)表达式字符串
2
)表达式的参数,这种方式如果要用
\,
一定要用
\\
来转义。
2)
直接采用
/
形式,以把表达式的内容写到
/……./
里面,在后面跟上表达式的参数,参数字符可以同时添加多个,例如:
/………/gi
二、
参数介绍
1)
Dotall
属性,用
s
字符表示参数,指定字符(
.
)在表达式里是不是匹配新行,如果使用了
s
参数,那就表示
dotall
表示真
例:
var
str:String
=
"
<p>Hello\n
"
+
"
again</p>
"
+
"
<p>Hello</p>
"
;
var
pattern:RegExp
=
/<
p
>
.
*?<
\
/
p
>/
;
trace(pattern.dotall)
//
false
trace(pattern.exec(str));
//
<p>Hello</p>
pattern
=
/<
p
>
.
*?<
\
/
p
>/
s;
trace(pattern.dotall)
//
true
trace(pattern.exec(str));
2)
Extended
属性,用
x
参数表示,指是否在表达式定义的时候是否忽略空格
例:
var
rePhonePattern1:RegExp
=
/
\d
{
3
}
-
\d
{
3
}
-
\d
{
4
}
|
\(\d
{
3
}
\)\s
?
\d
{
3
}
-
\d
{
4
}
/
;
var
str:String
=
"
The phone number is (415)555-1212.
"
;
trace(rePhonePattern1.extended)
//
false
trace(rePhonePattern1.exec(str));
//
(415)555-1212
var
rePhonePattern2:RegExp
=
/
\d
{
3
}
-
\d
{
3
}
-
\d
{
4
}
|
\( \d
{
3
}
\) \
?
\d
{
3
}
-
\d
{
4
}
/
x;
trace(rePhonePattern2.extended)
//
true
trace(rePhonePattern2.exec(str));
//
(415)555-1212
3)
global
属性,用
g
参数表示,指是否用表达式在匹配以后在下次匹配的时候是从头再来还是从上次匹配过的地方开始,其
lastIndex
属性会保存起来。
例:
var
pattern:RegExp
=
/
foo\d
/
;
var
str:String
=
"
foo1 foo2
"
;
trace(pattern.global);
//
false
trace(pattern.exec(str));
//
foo1
trace(pattern.lastIndex);
//
0
trace(pattern.exec(str));
//
foo1
pattern
=
/
foo\d
/
g;
trace(pattern.global);
//
true
trace(pattern.exec(str));
//
foo1
trace(pattern.lastIndex);
//
4
trace(pattern.exec(str));
//
foo2
4)
ignoreCase
属性,用
i
参数表示,指表达式匹配的时候是否区别大小写。
例:
var
pattern:RegExp
=
/
bob
/
;
var
str:String
=
"
Bob bob
"
;
trace(pattern.ignoreCase);
//
false
trace(pattern.exec(str));
//
bob
pattern
=
/
bob
/
i;
trace(pattern.ignoreCase);
//
true
trace(pattern.exec(str));
//
Bob
5)
lastIndex
属性,指定下次查询的起始位置,这个属性影响两个方法
exec()
和
test()
,
match()
,
replace()
,
search()
方法是忽略这个属性的,他们总是从头开始的。
这个属性要和
global
结合使用,当
global
为
true
时,执行
exec()
和
test()
后,
lastIndex
属性会被设置为下一个字符,如果是
false
,则会从头开始。
例:
6)
multiline
属性,用
m
参数表示,指表达式匹配的时候用字符(
^
)和(
$
)分别表示在之前或之后有新的一行。
例:
var
pattern:RegExp
=
/^
bob
/
;
var
str:String
=
"
foo\n
"
+
"
bob
"
;
trace(pattern.multiline);
//
false
trace(pattern.exec(str));
//
null
pattern
=
/^
bob
/
m;
trace(pattern.multiline);
//
true
trace(pattern.exec(str));
//
bob
7)
source
属性,返回表达式的定义字符串。
例:
var
re1:RegExp
=
/
aabb
/
gi;
trace (re1.source);
//
aabb
var
re2:RegExp
=
new
RegExp(
"
x+y*
"
,
"
i
"
);
trace(re2.source);
//
x+y*
三、
方法介绍
1)
Exec()
方法:
i.
输入:传入一个
String
类型的参数,表示要查询的字符串。
ii.
返回:如果没有匹配到就返回
null
,否则返回一个
Object
对象。
这个
Object
对象的属性:
a)
一个
Array
(数组),元素
0
包含一个匹配得到的子串,
1
到
n
包含,其中定义的组所匹配的字符子串
b)
Index
匹配子串在字符串里的位置
c)
Input
输入的原始字符串。
例:
var
myPattern:RegExp
=
/
(\w
*
)sh(\w
*
)
/
ig;
var
str:String
=
"
She sells seashells by the seashore
"
;
var
result:Object
=
myPattern.exec(str);
trace(result);
输出:
-
result[0]
是”she”
-
result[1]
是一个空串(
第一个\w
是匹配到空的子串)
-
result[2]
是”e”
-
result.index
是0
-
result.input
是”
She sells seashells by the seashore”
设置了g(global)
属性的例子:
var
myPattern:RegExp
=
/
(\w
*
)sh(\w
*
)
/
ig;
var
str:String
=
"
She sells seashells by the seashore
"
;
var
result:Object
=
myPattern.exec(str);
while
(result
!=
null
)
{
trace ( result.index,
"
\t
"
, result);
result
=
myPattern.exec(str);
}
输出:
0
She,,e
10
seashells,sea,ells
27
seashore,sea,ore
2)
Test()
方法:
i.
输入:传入一个
String
类型的参数,表示要查询的字符串。
ii.
返回:如果匹配返回
true
,否则返回
false.
例:
var
re1:RegExp
=
/
\w
/
g;
var
str:String
=
"
a b c
"
;
trace (re1.lastIndex);
//
0
trace (re1.test(str));
//
true
trace (re1.lastIndex);
//
1
trace (re1.test(str));
//
true
trace (re1.lastIndex);
//
3
trace (re1.test(str));
//
true
trace (re1.lastIndex);
//
5
trace (re1.test(str));
//
false
四、
综合例子:
package
{
import flash.display.Sprite;
public class RegExpExample extends Sprite
{
public
function
RegExpExample()
{
var
formalGreeting:String
=
"
Hello, John Smith.
"
;
trace(informalizeGreeting(formalGreeting));
//
Hi, John.
var
validEmail:String
=
"
name@domain.com
"
;
trace(validateEmail(validEmail));
//
true
var
invalidEmail:String
=
"
foo
"
;
trace(validateEmail(invalidEmail));
//
false
var
validPhoneNumber:String
=
"
415-555-1212
"
;
trace(validatePhoneNumber(validPhoneNumber));
//
true
var
invalidPhoneNumber:String
=
"
312-867-530999
"
;
trace(validatePhoneNumber(invalidPhoneNumber));
//
false
}
private
function
informalizeGreeting(str:String):String
{
var
pattern:RegExp
=
new
RegExp(
"
hello, (\\w+) \\w+
"
,
"
i
"
);
return
str.replace(pattern,
"
Hi, $1
"
);
}
private
function
validateEmail(str:String):Boolean
{
var
pattern:RegExp
=
/
(\w
|
[_.\
-
])
+
@((\w
|-
)
+
\.)
+
\w
{
2
,
4
}
+/
;
var
result:Object
=
pattern.exec(str);
if
(result
==
null
)
{
return
false
;
}
return
true
;
}
private
function
validatePhoneNumber(str:String):Boolean
{
var
pattern:RegExp
=
/^
\d
{
3
}
-
\d
{
3
}
-
\d
{
4
}
$
/
;
var
result:Object
=
pattern.exec(str);
if
(result
==
null
)
{
return
false
;
}
return
true
;
}
}
}
分享到:
相关推荐
AS3验证手机,验证数字,验证邮箱等常用的正则表达式
AS正则表达式AS正则表达式AS正则表达式AS正则表达式AS正则表达式
关于BGP_AS-PATH正则表达式的文档
Flash AS2.0 常用的正则表达式
AS3 正则表达式 AS3 正则表达式 AS3 正则表达式
《精通正则表达式》是系统学习正则表达式的唯一最权威著作。任何时候,任何地方,只要提到正则表达式著作,人们都会提到这本书。该书质量之高,声誉之盛,使得几乎没有人企图挑战它的地位,从而在正则表达式图书领域...
在AS3.0中得正则表达式的使用规则和例子,欢迎下载
strReplace(str:String,rstr:String,restr:String):字符替换 方法返回替换后的字符串 str 要替换的字符串 rstr需要替换掉的字符串 restr 替换后的字符串 返回替换后的字符串 trim(str:String):去掉首位的空格 返回...
AS3 的正则表达式工具,目前仅支持简单的匹配验证
Java中使用正则表达式的测试器,让你的编写正则表达式不再麻烦,重复,功能很强大
贪婪、非贪婪与回溯PHP正则表达式的效率 回溯与固化分组正则表达式之回溯AS3 js正则表达式 反向引用(backreference)详解JavaScript正则表达式之分组匹配及反向引用php正则表达式的模式修正符和逆向引用使用介绍PHP...
在 JavaScript 中,正则表达式通常用于两个字符串方法 : search() 和 replace()。 search() 方法 用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。 replace() 方法 ...
上面的正则表达式可以接受字符串john_doe , jo-hn_doe和john12_as 。 它与Jo不匹配,因为该字符串包含大写字母,并且它太短。 目录 1.基本匹配器 正则表达式只是我们用来在文本中执行搜索的字符模式。 例如,正则...
正则表达式as.ppt
正则表达式就是专门为了校验数据而产生的一个语法,除了可以校验数据,还可以提取一些想要的固定模式数据,还可以替换数据 – 替换字符串(正则表达式主要用于字符串的处理 ) 正则表达式就是一个模式,可以用来校验...
NIIT项目展示所用。课题名称为正则表达式。提高给新生参考,愿你好好准备,取得好成绩。
本文介绍了 as.net下的正则表达式的写法
采用正则表达式的四则运算:在VBA环境中,如何使用正则表达式,将正则表达式应用到四则运算中的算是分解中。 Dim r1 As RegExp Dim m1 As Match Dim mc1 As MatchCollection Dim str As String Dim sstr As String ...
请问是在js中如何写这样的正则表达式? 测试字符串:a123456- 解决方法如下所示: 把\d改为[0-9]问题就解决了,正则表达式如下: 代码如下: var regex = new RegExp(‘(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9...
关于BGP_AS-PATH的正则表达式[归类].pdf