0

我能够毫无问题地追踪结果。但是我想将结果转换为字符串而不是数组。我想这样做的原因是因为我需要对返回的每个字符串进行搜索和替换。也有人可以帮助将数组的每一行放在一个字符串中,这样我就可以进行搜索和替换。对不起,我我是 flex dev 的新手。非常感谢您的帮助

 var myArrayOfLines:Array = ul.data.split(/\n/);
 var line:String;
 for each (var lineRaw:String in myArrayOfLines)
 { 
  //line:String = lineRaw.match(pattern);
 trace(lineRaw.match(pattern));
  }
4

2 回答 2

0

由于您的数组存储字符串。您可以定义String变量(例如str)并迭代数组并将数组的每个项目附加到 str ,如下所示:

var str : String = "";
for each (var line : String in myArrayOfLines) {
    str += line;
}
//you can do some match and replace operation on the str variable, 
//since it contains all the elements of the arr.
于 2013-01-11T01:59:46.293 回答
-1

如果您想替换每一行中的某些内容,并且只需加入结果,则无需将其拆分为行。您可以只使用 replaceAll 方法。

replaceAll("pattern to search","string to put where pattern match");

如果您仍然需要替换并加入所有行,您可以执行以下操作

    var myArrayOfLines:Array = ul.data.split(/\n/);
    var line:String;
    var result:String = "";
    for each (var lineRaw:String in myArrayOfLines){ 
        // you can use replace or replaceAll
        line:String = lineRaw.replace(pattern, "whatever you want to put in places");
        result += line;
        result += "\n"; // use this line if you want to add the break lines again
    }

如果您仍想使用 match(),它会返回所有匹配项而不是单个字符串:

var str:String = "bob@example.com, omar@example.org"; 
var pattern:RegExp = /\w*@\w*\.[org|com]+/g; 
var results:Array = str.match(pattern);
// the result is ["bob@example.com","omar@example.org"]

所以,如果你有这样的东西,你可以做一个 for 来迭代所有的匹配。

    var lines:Array = lineRaw.match(pattern);
    for each (var line:String in lines){ 
        // you can do whatever you want with the String line
        result += line;
    }
于 2013-01-11T02:12:01.873 回答