FileReference 的使用对有效字符有限制。
错误:错误 #2087:FileReference.download() 文件名包含禁止字符。
这很好,因为我猜这个限制无论如何来自底层文件系统
是否存在修剪/替换所有禁用字符的通用方法?
为了清楚起见,我追求的是:
var dirty:String = "吃这个!@##$%%^&&*()\/";.txt
var clean:String = dirty.replaceAllProhibitedCharacters();
我不是在寻找特定于操作系统的正则表达式,而是跨平台解决方案。
最佳答案
禁止字符列表不会因底层操作系统而改变,它是一个固定列表。从 FileReference.download()
的文档中,不允许使用的字符列表是:
/\:*?"<>|%
编辑:看起来 @
也是不允许的。
如果您想从任意字符串中删除这些字符,您可以执行以下操作:
var validFileName:String = invalidFileName.replace(/[\/\\:*?"<>|%@]/g, "");
如果你想用其他东西替换它们,那么将第二个参数更改为 replace()
。
编辑:添加了@
字符;转义了 /
字符。
关于apache-flex - Flex FileReference 禁止字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8927711/