Відмінності між версіями «Метод Exec»

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук
 
(не показано 9 проміжних версій цього учасника)
Рядок 1: Рядок 1:
'''Метод exec'''
 
 
 
Синтаксис: регвир.exec (рядок)<br>
 
Синтаксис: регвир.exec (рядок)<br>
 
Аргументи: рядок - будь-який рядковий вираз<br>
 
Аргументи: рядок - будь-який рядковий вираз<br>
Рядок 16: Рядок 14:
  
 
Приклад: наступний сценарій
 
Приклад: наступний сценарій
  var arr = /(\d+)\.(\d+)\.(\d+)/.exec("Я родился 21.05.1958");
+
  var arr = /(\d+)\.(\d+)\.(\d+)/.exec("Я народився 20.03.1998");
  document.write("Дата рождения: ", arr[0]);
+
  document.write("Дата народження:", arr[0]);
  document.write("День рождения: ", arr[1]);
+
  document.write("День народження: ", arr[1]);
  document.write("Месяц рождения: ", arr[2]);
+
  document.write("Місяць народження: ", arr[2]);
  document.write("Год рождения: ", arr[3]);
+
  document.write("Рік народження: ", arr[3]);
 +
виведе на екран браузера текст:<br>
 +
Дата народження: 20.03.1998<br>
 +
День народження: 20<br>
 +
Місяць народження: 03<br>
 +
Рік народження: 1998<br>
 +
Включення до регулярний вираз опції глобального пошуку дозволяє багаторазово застосовувати цей метод до вихідної рядку для послідовного виділення всіх підрядка, відповідних даного зразка. Наприклад, наступний сценарій<br>
 +
var re = /\d+/g;
 +
var s = "123 abc 456 def 789 xyz";
 +
var result;
 +
while (result = re.exec(s))
 +
document.write(result[0] + " ");
 +
виведе на екран браузера рядок 123 456 789.<br>
 +
'''Примітка.''' Пам'ятайте, що в подібних циклах не можна виконувати операції з регулярними виразами, оскільки вони змінюють статичні властивості об'єкта RegExp.
 +
[[Регулярні вирази в JavaScript]]

Поточна версія на 10:50, 13 травня 2010

Синтаксис: регвир.exec (рядок)
Аргументи: рядок - будь-який рядковий вираз
Результат: масив результатів або null

Метод exec виконує зіставлення рядки зі зразком, заданим регвир. Якщо зіставлення зі зразком закінчилося невдачею, то повертається значення null. В іншому випадку результатом є масив підрядка, відповідних заданому зразку. У процесі зіставлення проводиться оновлення всіх властивостей об'єкта регвир (і тим самим всіх властивостей об'єкта RegExp).

Результуючий масив має наступні властивості:

  • властивість input містить вихідну рядок;
  • властивість index містить позицію знайденої підрядка у вихідній рядку;
  • властивість length одно n + 1, де n - кількість подвираженій регулярного виразу, укладених в круглі дужки;
  • елемент 0 містить знайдену підрядок;
  • елементи 1, ..., n містять підрядка, відповідні подвираженіям регулярного виразу в круглих дужках.

Приклад: наступний сценарій

var arr = /(\d+)\.(\d+)\.(\d+)/.exec("Я народився 20.03.1998");
document.write("Дата народження:", arr[0]);
document.write("День народження: ", arr[1]);
document.write("Місяць народження: ", arr[2]);
document.write("Рік народження: ", arr[3]);

виведе на екран браузера текст:

Дата народження: 20.03.1998
День народження: 20
Місяць народження: 03
Рік народження: 1998

Включення до регулярний вираз опції глобального пошуку дозволяє багаторазово застосовувати цей метод до вихідної рядку для послідовного виділення всіх підрядка, відповідних даного зразка. Наприклад, наступний сценарій

var re = /\d+/g;
var s = "123 abc 456 def 789 xyz";
var result;
while (result = re.exec(s))
document.write(result[0] + " ");

виведе на екран браузера рядок 123 456 789.
Примітка. Пам'ятайте, що в подібних циклах не можна виконувати операції з регулярними виразами, оскільки вони змінюють статичні властивості об'єкта RegExp.

Регулярні вирази в JavaScript