Методы substr() и substring() AS3 — выделение/выборка частей строк
На этом уроке мы рассмотрим два вопроса:
- Методы substr() и substring() AS3 — выделение/выборка частей строк
- Дополнительная информация
Возможно, на практике Вы столкнетесь с ситуациями в ActionScript 3, когда Вам нужно будет выделить какой-то фрагмент строки (String), то есть ее часть. Например, необходимо выделить в адресе электронной почты все символы до знака @ (имя адресата).
В AS3 есть два близких метода для проведения подобной операции, а именно substr() и substring().
Первый метод принимает два аргумента:
- начальный индекс (с которого мы начинаем выделение или выборку)
- общее количество символов для выделения
Например:
var bookTitle:String = "Наполеон"; var strPart:String = bookTitle.substr(2, 3);
В итоге значение переменной strPart будет равно "пол": три символа начиная с третьего. Заметьте при этом, что у третьего символа индекс равен 2!
Метод substring() также принимает два аргумента:
- первый – это индекс начального символа с которого мы начнем отсчет нашей выборки (как и в случае с substr())
- второй – это индекс последнего символа на котором выборка должна закончиться
Поэтому, используя пример приведенный выше
var bookTitle:String = "Наполеон"; var strPart:String = bookTitle.substring(6, 7);
мы получим "он". Выделение начинается с символа с индексом 6 (буква "о") и заканчивается символом с индексом 7 включительно (буква "н").
Методы substr() и substring() AS3 — выделение/выборка частей строк
Создайте поле текста, например
var txtEmailUser:TextField = new TextField();
Задайте ему автоматическую ширину и выравнивание по левому краю
txtEmailUser.autoSize = TextFieldAutoSize.LEFT;
Определите местоположение для текстового поля и добавьте его на сцену
txtEmailUser.x = 150; txtEmailUser.y = 150; addChild(txtEmailUser);
Создайте еще одно текстовое поле
var txtEmailDomain:TextField = new TextField();
Задайте ему автоматическую ширину и выравнивание по левому краю
txtEmailDomain.autoSize = TextFieldAutoSize.LEFT;
Определите местоположение для текстового поля и добавьте его на сцену
txtEmailDomain.x = 150; txtEmailDomain.y = 250; addChild(txtEmailDomain);
Декларируйте строковую переменную
var email:String = "post@mail.ru";
Сделайте выборку нужных символов, например
var emailUser:String = email.substring(0, email.indexOf("@"));
Сделайте выборку других символов, если необходимо
var emailDomain:String; emailDomain = email.substring((email.indexOf("@")+1), email.length);
А теперь отобразите полученные значения в созданных текстовых полях
txtEmailUser.text = emailUser; txtEmailDomain.text = emailDomain;
Нажмите Ctrl + Enter. Ваш flash-ролик начнет воспроизводиться.
В результате в текстовых полях появятся две половины электронного адреса: до символа "@" и после него, соответственно.
Дополнительная информация
Actionscript также поддерживает и метод slice(). Он очень похож на substring() и при передаче ему положительных чисел в виде аргументов, фактически, идентичен первому. Однако метод slice() при передаче ему отрицательных чисел в виде аргументов способен осуществлять поиск в строке справа налево, тогда как substring() просто игнорирует подобное и приводит отрицательные числа к нулю.
var tree:String = "Зеленый клен"; trace(tree.substring(6, tree.length)); //returns "клен" trace(tree.slice(6, tree.length)); //returns "клен" trace(tree.substring(-3, tree.length)); // returns "Зеленый клен" trace(tree.slice(-3, tree.length)); // returns "клен"