Browse > Home > Flash CS3/AS3 > 慎用正则表达式RegExp

| Subcribe via RSS

慎用正则表达式RegExp

八月 7th, 2008 | 367 views | Posted by flashlizi in Flash CS3/AS3

AS3中的正则表达式效率并不高,在很多时候如果用其他方法能实现的话尽量不要用正则,所以String的replace、search、match如果有替换方法的话尽量不要用它们,比如用split&join方法代替一般replace。当然在一些用普通方法不好实现的复杂问题中用正则还是很好的。

比如下面的例子:
var str:String="i love flash-123";
test1(); //replace test1: 330 iloveflash
test2(); //strip test2: 67 iloveflash
function test1():void
{
var time=getTimer();
for(var i = 0; i < 1e4; i++)
{
str.replace(/\W|[0-9]|_/g, "");
}
trace("replace test1:", (getTimer()-time), str.replace(/\W|[0-9]|_/g, ""));
}
function test2():void
{
var time=getTimer();
for(var i = 0; i < 1e4; i++)
{
strip(str);
}
trace("strip test2:", (getTimer()-time), strip(str));
}
function strip(str:String):String
{
var newstr:String = "";
for (var i:int = 0, len:int = str.length; i < len; i++)
{
var char:String = str.charAt(i);
if (char >= “a”; && char <= "z") newstr += char;
}
return newstr;
}

Leave a Reply