aboutsummaryrefslogtreecommitdiff
path: root/files/pl/web/javascript/reference/global_objects/regexp/exec/index.html
blob: 8385a71d921a578c15fb0114db0a47caa584797c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
---
title: RegExp.prototype.exec()
slug: Web/JavaScript/Reference/Global_Objects/RegExp/exec
tags:
  - JavaScript
  - Method
  - Prototype
  - RegExp
translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/exec
original_slug: Web/JavaScript/Referencje/Obiekty/RegExp/exec
---
<p>{{ JSRef }}</p>

<h2 id="Podsumowanie" name="Podsumowanie">Podsumowanie</h2>

<p>Wykonuje operacje wyszukiwania danego łańcucha znaków. Wynikiem jest macierz.</p>

<h2 id="Sk.C5.82adnia" name="Sk.C5.82adnia">Składnia</h2>

<pre class="syntaxbox"><code><var>regexObj</var>.exec(<var>str</var>)</code></pre>

<p> </p>

<h3 id="Parametry" name="Parametry">Parametry</h3>

<dl>
 <dt><code>str</code> </dt>
 <dd>Łańcuch znaków, do którego ma być porównane wyrażenie.</dd>
</dl>

<h2 id="Opis" name="Opis">Opis</h2>

<p>Jak wynika z opisu składni metoda exec może być wywołana w sposób bezpośredni (za pomocą <code>regexp.exec(str)</code>) lub pośredni (za pomocą <code>regexp(str)</code>).</p>

<p>Jeśli wynik będzie pozytywny metoda <code>exec</code> zwróci macierz oraz zaktualizuje własności obiektu. W przeciwnym wypadku zostanie zwrócone <code>null</code>.</p>

<p>Przejrzyj poniższy przykład:</p>

<pre class="brush: js">//Znajdź pojedyncze "d" poprzedzone przez jedno lub więcej "b", po których następuje pojedyncze "d"
//Zapamiętaj znalezione "b" oraz następujące "d"
//Ignoruj wielkość liter
var re=/d(b+)(d)/ig;
var myArray = re.exec("cdbBdbsbz");
</pre>

<p>Poniższa tabela pokazuje rezultaty wygenerowane przez skrypt:</p>

<table class="fullwidth-table">
 <tbody>
  <tr>
   <td class="header">Obiekt</td>
   <td class="header">Właściwość/Indeks</td>
   <td class="header">Opis</td>
   <td class="header">Przykład</td>
  </tr>
  <tr>
   <td rowspan="5"><code>myArray</code></td>
   <td><code> </code></td>
   <td>Zawartość <code>myArray</code>.</td>
   <td><code>[ \"dbBd\", \"bB\", \"d\"') ]</code></td>
  </tr>
  <tr>
   <td><code>index</code></td>
   <td>Indeks wyszukania łańcucha znaków rozpoczynający się od 0.</td>
   <td><code>1</code></td>
  </tr>
  <tr>
   <td><code>input</code></td>
   <td>Ciąg bazowy.</td>
   <td><code>cdbBdbsbz</code></td>
  </tr>
  <tr>
   <td><code>[0]</code></td>
   <td>Ostatnie odnalezione znaki.</td>
   <td><code>dbBd</code></td>
  </tr>
  <tr>
   <td><code>[1], ...[<em>n</em> ]</code></td>
   <td>Wyszukane podłańcuch w nawiasach. Liczba możliwych podłańcuch jest nieokreślona.</td>
   <td><code>[1] = bB<br>
    [2] = d</code></td>
  </tr>
  <tr>
   <td rowspan="5"><code>myRe</code></td>
   <td><code>lastIndex</code></td>
   <td>Indeks, od którego rozpocząć nowe wyszukiwanie.</td>
   <td><code>5</code></td>
  </tr>
  <tr>
   <td><code>ignoreCase</code></td>
   <td>Wskazuje czy flaga "<code>i</code>" została użyta.</td>
   <td><code>true</code></td>
  </tr>
  <tr>
   <td><code>global</code></td>
   <td>Wskazuje czy flaga "<code>g</code>" została użyta do globalnego przeszukiwania.</td>
   <td><code>true</code></td>
  </tr>
  <tr>
   <td><code>multiline</code></td>
   <td>Wskazuje czy flaga "<code>m</code>" została użyta do globalnego przeszukiwania.</td>
   <td><code>false</code></td>
  </tr>
  <tr>
   <td><code>source</code></td>
   <td>Tekst wyszukiwanego łańcucha znaków.</td>
   <td><code>d(b+)(d)</code></td>
  </tr>
 </tbody>
</table>

<p>Jeżeli twoje wyrażenie regularne korzysta z flagi "g", możesz wielokrotnie używać metody exec() aby porównać je z tym samym ciągiem znaków. W takim wypadku porównywanie rozpoczyna się od elementu zdefiniowanego jako <code>lastIndex. </code>Na przykład:</p>

<pre class="brush: js  language-js"><code class="language-js"><span class="keyword token">var</span> myRe <span class="operator token">=</span> <span class="regex token">/ab*/g</span><span class="punctuation token">;</span>
<span class="keyword token">var</span> str <span class="operator token">=</span> <span class="string token">'abbcdefabh'</span><span class="punctuation token">;</span>
<span class="keyword token">var</span> myArray<span class="punctuation token">;</span>
<span class="keyword token">while</span> <span class="punctuation token">(</span><span class="punctuation token">(</span>myArray <span class="operator token">=</span> myRe<span class="punctuation token">.</span><span class="function token">exec<span class="punctuation token">(</span></span>str<span class="punctuation token">)</span><span class="punctuation token">)</span> <span class="operator token">!</span><span class="operator token">==</span> <span class="keyword token">null</span><span class="punctuation token">)</span> <span class="punctuation token">{</span>
  <span class="keyword token">var</span> msg <span class="operator token">=</span> <span class="string token">'Found '</span> <span class="operator token">+</span> myArray<span class="punctuation token">[</span><span class="number token">0</span><span class="punctuation token">]</span> <span class="operator token">+</span> <span class="string token">'. '</span><span class="punctuation token">;</span>
  msg <span class="operator token">+</span><span class="operator token">=</span> <span class="string token">'Next match starts at '</span> <span class="operator token">+</span> myRe<span class="punctuation token">.</span>lastIndex<span class="punctuation token">;</span>
  console<span class="punctuation token">.</span><span class="function token">log<span class="punctuation token">(</span></span>msg<span class="punctuation token">)</span><span class="punctuation token">;</span>
<span class="punctuation token">}</span></code></pre>

<p>Skrypt ten wyświetli następujący tekst:</p>

<pre>Found abb. Next match starts at 3
Found ab. Next match starts at 9
</pre>

<h2 id="Przyk.C5.82ady" name="Przyk.C5.82ady">Przykłady</h2>

<h3 id="Przyk.C5.82ad:_Zastosowanie_exec" name="Przyk.C5.82ad:_Zastosowanie_exec">Przykład: Zastosowanie <code>exec()</code></h3>

<p>You can also use <code>exec()</code> without creating a {{jsxref("RegExp")}} object:</p>

<pre class="brush: js  language-js"><code class="language-js"><span class="keyword token">var</span> matches <span class="operator token">=</span> <span class="regex token">/(hello \S+)/</span><span class="punctuation token">.</span><span class="function token">exec<span class="punctuation token">(</span></span><span class="string token">'This is a hello world!'</span><span class="punctuation token">)</span><span class="punctuation token">;</span>
console<span class="punctuation token">.</span><span class="function token">log<span class="punctuation token">(</span></span>matches<span class="punctuation token">[</span><span class="number token">1</span><span class="punctuation token">]</span><span class="punctuation token">)</span><span class="punctuation token">;</span></code></pre>

<p>This will display an alert containing 'hello world!'.</p>

<h2 id="Zobacz_także">Zobacz także</h2>

<ul>
 <li><a href="https://developer.mozilla.org/pl/docs/Web/JavaScript/Guide/Regular_Expressions">Regular Expressions</a> chapter in the <a href="https://developer.mozilla.org//pl/docs/Web/JavaScript/Guide">JavaScript Guide</a></li>
 <li>{{jsxref("RegExp")}}</li>
</ul>