Вопрос-Ответ для флеш-разработчиков - Flashans.ru (наш проект)
Новые сообщения форума - Наши люди - Поиск по форуму - Правила
  • Страница 1 из 1
  • 1
Форум » _ROOT » Уроки по Flash » Удаление ненужных символов в строке (AS2 AS3)
Удаление ненужных символов в строке
13.11.2010, 22:04; Сообщ. № 1
tiHo


Сообщений 30 Репутация 0 (+)
Удаление ненужных символов в строке
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]


редактировать / удалить
Форум » _ROOT » Уроки по Flash » Удаление ненужных символов в строке (AS2 AS3)
  • Страница 1 из 1
  • 1
Поиск: