Удаление ненужных символов в строке
ActionScript 2.0, 3.0
Иногда нам нужно избавиться от ненужных символов в строке, так как они могут помешать нам что либо реализовать. Например в файлах ОС Windows нельзя использовать символы / \ : * ? " < > | о чем вам с радостью расскажет Windows при первой же попытки их туда вставить. Давайте рассмотрим простенький скрипт для ActionScript 2.0 убирающий из строки вышеуказанные символы:
Code
var str:String = "<имя>_фай|л|а?.:txt";
var badChar:Array = ["/", "\\", ":", "*", "?", "\"", "<", ">", "|"];
var mass:Array = [];
for (var i = 0; i <= str.length; i++)
{
mass = str.split(badChar[i]);
str = mass.join("");
}
trace(mass.join(""));
Принцип работы очень прост: есть массив ненужных символов, есть зараженная этими символами строка. Мы заполняем в цикле массив mass новыми элементами, разрывом между которами служат ненужные символы из массива badChar перебранные каждые в цикле, и следущим ходом соединяем элементы массива mass обратно в строку. Ну и по неписаной флешерской традиции показываем результат через trace (-:
А на ActionScript 3.0 есть функция replace() класса String, упрощающая все до безпредела. Вот как наша задача будет выглядеть для этой версии языка:
Code
package {
import flash.display.Sprite;
public class Main extends Sprite
{
public var str:String;
public var template:RegExp;
public function Main():void
{
str = "<имя>_фай|л|а?.:txt";
template = /[\/\\\:\*\?\"\<\>\|]/g;
trace(str.replace(template,""));
}
}
}
Тут тоже всё просто как веник - производим замену в строке с помощью функции replace(), и с использованием регулярного выражения template.
Подробнее о регулярных выражениях можно ознакомиться тут:
Регулярные выражения
Подробнее о функции String.replace() можно ознакомиться тут:
String.replace()[/code][code]