您可以使用 RegExp 类获取匹配项和位置:
// change wholeText to a class variable or function param
var wholeText:String = "...addEventListener( Event...";
var pattern:RegExp = /addEventListener/g;
var result:Array = pattern.exec( wholeText );
while ( result != null )
{
trace( result.index, pattern.lastIndex, result );
result = pattern.exec( wholeText );
}
...要包含格式,您可以...
var tf:TextFormat = new TextFormat( null, null, 0x0000ff );
var wholeText:String = "...addEventListener( Event...";
var pattern:RegExp = /addEventListener/g;
var result:Array = pattern.exec( wholeText );
while ( result != null )
{
wholeText.setTextFormat( tf, result.index, pattern.lastIndex );
result = pattern.exec( wholeText );
}
我没有针对 BadFeelingAboutThis 的方法进行性能检查。我将其作为更紧凑的解决方案提供。
当然,你可以很容易地实现它,改变
var pattern:RegExp = /addEventListener/g;
...到...
function colorizeString( findMe:String ) : void
{
// ....
var pattern:RegExp = new RegExp( findMe, "g" );
// ...
}
我将其保留为区分大小写。如果您希望它不区分大小写,您可以将“g”更改为“gi”。