| Пакет | Верхний уровень |
| Класс | public dynamic class RegExp |
| Наследование | RegExp Object |
| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Новый объект RegExp можно создать с помощью конструктора new RegExp() или путем присвоения литерала RegExp переменной:
var pattern1:RegExp = new RegExp("test-\\d", "i");
var pattern2:RegExp = /test-\d/i;
Дополнительные сведения см. в главе «Использование регулярных выражений» в Руководстве разработчика по ActionScript 3.0.
Связанные элементы API
| Свойство | Определено | ||
|---|---|---|---|
![]() | constructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта. | Object | |
| dotall : Boolean [только для чтения]
Указывает, совпадает ли символ точки (.) в шаблоне регулярного выражения с символами новой строки. | RegExp | ||
| extended : Boolean [только для чтения]
Определяет, должен ли использоваться расширенный режим для регулярного выражения. | RegExp | ||
| global : Boolean [только для чтения]
Определяет, должен ли использоваться глобальный поиск совпадений для регулярного выражения. | RegExp | ||
| ignoreCase : Boolean [только для чтения]
Определяет, игнорируется ли регистр регулярного выражения. | RegExp | ||
| lastIndex : Number
Определяет позицию в индексе для строки, с которой должен начинаться следующий поиск. | RegExp | ||
| multiline : Boolean [только для чтения]
Определяет, установлен ли флаг m (multiline). | RegExp | ||
| source : String [только для чтения]
Определяет шаблонную часть регулярного выражения. | RegExp | ||
| Метод | Определено | ||
|---|---|---|---|
Позволяет создавать регулярное выражение из двух строк. | RegExp | ||
Выполняет поиск регулярного выражения в заданной строке str. | RegExp | ||
![]() |
Показывает, определено ли заданное свойство для объекта. | Object | |
![]() |
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. | Object | |
![]() |
Показывает наличие заданного свойства и его перечисляемость. | Object | |
![]() |
Задает доступность динамического свойства для операций цикла. | Object | |
Проверяет совпадение регулярного выражения в данной строке str. | RegExp | ||
![]() |
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали. | Object | |
![]() |
Возвращает строковое представление заданного объекта. | Object | |
![]() |
Возвращает элементарное значение заданного объекта. | Object | |
dotall | свойство |
dotall:Boolean [только для чтения] | Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Указывает, совпадает ли символ точки (.) в шаблоне регулярного выражения с символами новой строки. Воспользуйтесь флагом s при создании регулярного выражения для выбора dotall = true.
Реализация
public function get dotall():BooleanПример ( Использование этого примера )
s (dotall) на регулярное выражение:
var str:String = "<p>Hello\n"
+ "again</p>"
+ "<p>Hello</p>";
var pattern:RegExp = /<p>.*?<\/p>/;
trace(pattern.dotall) // false
trace(pattern.exec(str)); // <p>Hello</p>
pattern = /<p>.*?<\/p>/s;
trace(pattern.dotall) // true
trace(pattern.exec(str));
extended | свойство |
extended:Boolean [только для чтения] | Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Определяет, должен ли использоваться расширенный режим для регулярного выражения. Когда объект RegExp находится в расширенном режиме, символы пробелов в строке конструктора игнорируются. Это позволяет создавать более читабельные конструкторы.
Воспользуйтесь флагом x при создании регулярного выражения, чтобы установить extended = true.
Реализация
public function get extended():BooleanПример ( Использование этого примера )
x, приводящий к тому, что пробелы в строке игнорируются.
var rePhonePattern1:RegExp = /\d{3}-\d{3}-\d{4}|\(\d{3}\)\s?\d{3}-\d{4}/;
var str:String = "The phone number is (415)555-1212.";
trace(rePhonePattern1.extended) // false
trace(rePhonePattern1.exec(str)); // (415)555-1212
var rePhonePattern2:RegExp = / \d{3}-\d{3}-\d{4} | \( \d{3} \) \ ? \d{3}-\d{4} /x;
trace(rePhonePattern2.extended) // true
trace(rePhonePattern2.exec(str)); // (415)555-1212
global | свойство |
global:Boolean [только для чтения] | Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Определяет, должен ли использоваться глобальный поиск совпадений для регулярного выражения. Когда global == true, свойство lastIndex устанавливается после нахождения совпадения. При следующем запросе совпадения механизм регулярных выражений начинает работать с позиции в строке, указанной в свойстве lastIndex. Воспользуйтесь флагом g при создании регулярного выражения, чтобы выбрать для свойства global значение true.
Реализация
public function get global():BooleanПример ( Использование этого примера )
g (global) в методе exec():
var pattern:RegExp = /foo\d/; var str:String = "foo1 foo2"; trace(pattern.global); // false trace(pattern.exec(str)); // foo1 trace(pattern.lastIndex); // 0 trace(pattern.exec(str)); // foo1 pattern = /foo\d/g; trace(pattern.global); // true trace(pattern.exec(str)); // foo1 trace(pattern.lastIndex); // 4 trace(pattern.exec(str)); // foo2
ignoreCase | свойство |
ignoreCase:Boolean [только для чтения] | Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Определяет, игнорируется ли регистр регулярного выражения. Воспользуйтесь флагом i при создании регулярного выражения, чтобы установить ignoreCase = true.
Реализация
public function get ignoreCase():BooleanПример ( Использование этого примера )
i (ignoreCase):
var pattern:RegExp = /bob/; var str:String = "Bob bob"; trace(pattern.ignoreCase); // false trace(pattern.exec(str)); // bob pattern = /bob/i; trace(pattern.ignoreCase); // true trace(pattern.exec(str)); // Bob
lastIndex | свойство |
lastIndex:Number| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Определяет позицию в индексе для строки, с которой должен начинаться следующий поиск. Это свойство влияет на методы exec() и test() класса RegExp. Однако методы match(), replace() и search() класса String игнорируют свойство lastIndex и всегда начинают поиск с начала строки.
Когда метод exec() или test() находит совпадение, флаг g (global) устанавливается со значением true для регулярного выражения. С помощью этого метода свойство lastIndex автоматически устанавливается в соответствии с позицией в индексе символа, который следует за последним символом в совпадающей подстроке последнего совпадения. Если флаг g (global) принимает значение false, метод не устанавливает свойство lastIndex.
Свойство lastIndex можно установить так, чтобы скорректировать начальную позицию в строке для поиска регулярных выражений.
Реализация
public function get lastIndex():Number public function set lastIndex(value:Number):voidПример ( Использование этого примера )
lastIndex и то, как оно обновляется после вызова метода exec() для регулярного выражения, в котором установлен флаг g (global):
var pattern:RegExp = /\w\d/g; var str:String = "a1 b2 c3 d4"; pattern.lastIndex = 2; trace(pattern.exec(str)); // b2 trace(pattern.lastIndex); // 5 trace(pattern.exec(str)); // c3 trace(pattern.lastIndex); // 8 trace(pattern.exec(str)); // d4 trace(pattern.lastIndex); // 11 trace(pattern.exec(str)); // null
multiline | свойство |
multiline:Boolean [только для чтения] | Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Определяет, установлен ли флаг m (multiline). Если он установлен, совпадает знак вставки (^) и знак доллара ($), расположенные в регулярном выражении до и после новой строки. Воспользуйтесь флагом m при создании регулярного выражения, чтобы установить multiline = true.
Реализация
public function get multiline():BooleanПример ( Использование этого примера )
m (multiline):
var pattern:RegExp = /^bob/;
var str:String = "foo\n"
+ "bob";
trace(pattern.multiline); // false
trace(pattern.exec(str)); // null
pattern = /^bob/m;
trace(pattern.multiline); // true
trace(pattern.exec(str)); // bob
source | свойство |
source:String [только для чтения] | Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Определяет шаблонную часть регулярного выражения.
Реализация
public function get source():StringПример ( Использование этого примера )
source для двух регулярных выражений:
var re1:RegExp = /aabb/gi;
trace (re1.source); // aabb
var re2:RegExp = new RegExp("x+y*", "i");
trace(re2.source); // x+y*
RegExp | () | Конструктор |
public function RegExp(re:String, flags:String)| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Позволяет создавать регулярное выражение из двух строк. Одна строка определяет шаблон регулярного выражения, а другая – флаги, которые в нем используются.
Параметрыre:String — Шаблон регулярного выражения (также называется строкой конструктора). Это основная часть регулярного выражения (ограниченная символами «/»).
Примечания.
| |
flags:String — Модификаторы регулярного выражения. В их число входят следующие:
Все остальные символы в строке |
exec | () | метод |
AS3 function exec(str:String):Object| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Выполняет поиск регулярного выражения в заданной строке str.
Если флаг g (global) не установлен для этого регулярного выражения, то поиск начинается с начала строки (с позиции индекса 0); при поиске игнорируется свойство lastIndex регулярного выражения.
Если флаг g (global) установлен для регулярного выражения, то поиск начинается с позиции индекса, указанной в свойстве lastIndex регулярного выражения. Если в результате поиска найдено совпадение подстроки, значение свойства lastIndex становится равным позиции конца совпадающей подстроки.
Параметры
str:String — Искомая строка.
|
Object — Если совпадения не найдено, появляется значение null; в противном случае появляется объект, имеющий следующие свойства:
|
Связанные элементы API
Пример ( Использование этого примера )
g (global) не установлен в регулярном выражении, то можно воспользоваться exec(), чтобы найти первое совпадение в строке:
var myPattern:RegExp = /(\w*)sh(\w*)/ig;
var str:String = "She sells seashells by the seashore";
var result:Object = myPattern.exec(str);
trace(result);
Объекту result присваивается следующее значение:
-
result[0]присваивается значениеShe(полное совпадение). -
result[1]присваивается значение пустой строки (первая совпадающая группа в скобках). -
result[2]присваивается значение«e»(вторая совпадающая группа в скобках). -
result.indexприсваивается значение 0. -
result.inputприсваивается значение строки ввода:She sells seashells by the seashore.
В следующем примере флаг g (global) устанавливается в регулярном выражении, чтобы exec() можно было повторно использовать для поиска нескольких совпадений:
var myPattern:RegExp = /(\w*)sh(\w*)/ig;
var str:String = "She sells seashells by the seashore";
var result:Object = myPattern.exec(str);
while (result != null) {
trace ( result.index, "\t", result);
result = myPattern.exec(str);
}
Результатом выполнения этого кода становится следующие выходные данные:
0 She,,e
10 seashells,sea,ells
27 seashore,sea,ore
test | () | метод |
AS3 function test(str:String):Boolean| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Проверяет совпадение регулярного выражения в данной строке str.
Если флаг g (global) не установлен для этого регулярного выражения, то поиск начинается с начала строки (с позиции индекса 0); при поиске игнорируется свойство lastIndex регулярного выражения.
Если флаг g (global) установлен для регулярного выражения, то поиск начинается с позиции индекса, указанной в свойстве lastIndex регулярного выражения. Если в результате поиска найдено совпадение подстроки, значение свойства lastIndex становится равным позиции конца совпадающей подстроки.
Параметры
str:String — Тестируемая строка.
|
Boolean — В случае совпадения выбирается значение true; в противном случае – false.
|
Пример ( Использование этого примера )
test() по отношению к регулярному выражению, в котором установлен флаг g (global):
var re1:RegExp = /\w/g; var str:String = "a b c"; trace (re1.lastIndex); // 0 trace (re1.test(str)); // true trace (re1.lastIndex); // 1 trace (re1.test(str)); // true trace (re1.lastIndex); // 3 trace (re1.test(str)); // true trace (re1.lastIndex); // 5 trace (re1.test(str)); // false
informalizeGreeting() просто заменяет слово Hello выражением Hi независимо от регистра. Кроме того, он удаляет фамилию имени в строке (предполагается, что она соответствует определенному шаблону). В методах validateEmail() и validatePhoneNumber() переданная строка проверяется на предмет соответствия шаблона действительному шаблону адреса электронной почты или конкретного телефонного номера. В зависимости от результатов методы возвращают логические значения.
package {
import flash.display.Sprite;
public class RegExpExample extends Sprite {
public function RegExpExample() {
var formalGreeting:String = "Hello, John Smith.";
trace(informalizeGreeting(formalGreeting)); // Hi, John.
var validEmail:String = "name@domain.com";
trace(validateEmail(validEmail)); // true
var invalidEmail:String = "foo";
trace(validateEmail(invalidEmail)); // false
var validPhoneNumber:String = "415-555-1212";
trace(validatePhoneNumber(validPhoneNumber)); // true
var invalidPhoneNumber:String = "312-867-530999";
trace(validatePhoneNumber(invalidPhoneNumber)); // false
}
private function informalizeGreeting(str:String):String {
var pattern:RegExp = new RegExp("hello, (\\w+) \\w+", "i");
return str.replace(pattern, "Hi, $1");
}
private function validateEmail(str:String):Boolean {
var pattern:RegExp = /(\w|[_.\-])+@((\w|-)+\.)+\w{2,4}+/;
var result:Object = pattern.exec(str);
if(result == null) {
return false;
}
return true;
}
private function validatePhoneNumber(str:String):Boolean {
var pattern:RegExp = /^\d{3}-\d{3}-\d{4}$/;
var result:Object = pattern.exec(str);
if(result == null) {
return false;
}
return true;
}
}
}
Tue Jun 12 2018, 11:34 AM Z
Скрыть унаследованные общедоступные свойства
Показать унаследованные общедоступные свойства