AS3中如何去除空格

15

如何在AS3中从字符串中删除空格?

我想要删除所有回车、空格、制表符等。

4个回答

28
你可以使用 RegExp。
var rex:RegExp = /[\s\r\n]+/gim;
var str:String = "This is            a string.";

str = str.replace(rex,'');
// str is now "Thisisastring."

要截取字符串的前后部分,请使用

var rex:RegExp /^\s*|\s*$/gim;

我该如何创建自己的RegExp?是否有任何教程可用? - Benny
4
这里的星号是错误的,因为星号也会匹配零长度字符串,如果您想将所有空格替换为一个空格,则不会按预期工作。请改用加号- var rex: RegExp = / [\ s \ r \ n] + / gim; - Ofir
@Ofir:OP只问了如何删除,你却添加了一个新的条件,这是对这个问题的范围扩展。我回答了那个问题,而不是从中可以得出的所有可能的问题。 - Robusto
@Robusto:您的答案非常好,但有点过度。空格不是零长度字符串,因此替换零长度字符串也不是问题的一部分。无论如何,用加号替换星号会更好地回答问题,因为它只会替换空格。 - Ofir
@Ofir:这个答案并不是为了去除(再次强调,不是替换)空格而过于复杂。比如说你想要实现一个字符串的修剪函数,那么你肯定会使用 ^\s*\s$ - Robusto

3
如果您可以访问AS3 Flex库,那么也有StringUtil.trim(" my string ")请参阅此处获取文档。
它并不完全符合OP的要求,但由于这是AS3字符串修剪的谷歌顶级答案,我认为值得发布这个解决方案以满足更常见的字符串修剪需求。

2

已在AnimateCC iOS air应用程序上测试并正常工作:

// Regular expressions
var spaces:RegExp = / /gi; // match "spaces" in a string
var dashes:RegExp = /-/gi; // match "dashes" in a string

// Sample string with spaces and dashes
loginMC.userName.text = loginMC.userName.text.replace(spaces, ""); // find and replace "spaces"
loginMC.userName.text = loginMC.userName.text.replace(dashes, ":"); // find and replace "dashes"

trace(loginMC.userName.text);

1
最简单的去除空格或任何字符的方法如下:
//Tested on Flash CS5 and AIR 2.0

//Regular expressions
var spaces:RegExp = / /gi; // match "spaces" in a string
var dashes:RegExp = /-/gi; // match "dashes" in a string

//Sample string with spaces and dashes
var str:String = "Bu  s ~ Tim  e - 2-50-00";
str = str.replace(spaces, ""); // find and replace "spaces"
str = str.replace(dashes, ":"); // find and replace "dashes"

trace(str); // output: Bus~Time:2:50:00

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接