Пакет | Верхний уровень |
Класс | 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