aboutsummaryrefslogtreecommitdiff
path: root/files/zh-tw/conflicting/web/javascript/guide/regular_expressions/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'files/zh-tw/conflicting/web/javascript/guide/regular_expressions/index.html')
-rw-r--r--files/zh-tw/conflicting/web/javascript/guide/regular_expressions/index.html60
1 files changed, 60 insertions, 0 deletions
diff --git a/files/zh-tw/conflicting/web/javascript/guide/regular_expressions/index.html b/files/zh-tw/conflicting/web/javascript/guide/regular_expressions/index.html
new file mode 100644
index 0000000000..d3d624f8f1
--- /dev/null
+++ b/files/zh-tw/conflicting/web/javascript/guide/regular_expressions/index.html
@@ -0,0 +1,60 @@
+---
+title: 正規表達式的運用
+slug: conflicting/Web/JavaScript/Guide/Regular_Expressions
+translation_of: Web/JavaScript/Guide/Regular_Expressions
+translation_of_original: Web/JavaScript/Guide/Obsolete_Pages/Working_with_Regular_Expressions
+original_slug: Web/JavaScript/Obsolete_Pages/Obsolete_Pages/Obsolete_Pages/正規表達式的運用
+---
+<ul> <li><a class="internal" href="/zh_tw/Core_JavaScript_1.5_%E6%95%99%E5%AD%B8/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E9%81%94%E5%BC%8F%E7%9A%84%E9%81%8B%E7%94%A8/%E4%BD%BF%E7%94%A8%E6%A8%99%E8%AA%8C%E7%9A%84%E9%80%B2%E9%9A%8E%E6%90%9C%E5%B0%8B" title="zh tw/Core JavaScript 1.5 教學/正則表達式的運用/使用標誌的進階搜尋">使用標誌的進階搜尋</a></li> <li><a class="internal" href="/zh_tw/Core_JavaScript_1.5_%E6%95%99%E5%AD%B8/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E9%81%94%E5%BC%8F%E7%9A%84%E9%81%8B%E7%94%A8/%E6%8B%AC%E5%BC%A7%E5%AD%90%E5%AD%97%E4%B8%B2%E7%9A%84%E6%AF%94%E5%B0%8D%E7%B5%90%E6%9E%9C%E7%9A%84%E9%81%8B%E7%94%A8" title="zh tw/Core JavaScript 1.5 教學/正則表達式的運用/括弧子字串的比對結果的運用">括弧子字串的比對結果的運用</a></li> <li><a class="internal" href="/zh_tw/Core_JavaScript_1.5_%E6%95%99%E5%AD%B8/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E9%81%94%E5%BC%8F%E7%9A%84%E9%81%8B%E7%94%A8/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E9%81%94%E5%BC%8F%E7%9A%84%E7%AF%84%E4%BE%8B" title="zh tw/Core JavaScript 1.5 教學/正規表達式的運用/正規表達式的範例">正規表達式的範例</a></li>
+</ul>
+<h3 id="正則表達式的運用" name="正則表達式的運用">正規表達式的運用</h3>
+<p>RegExp 的 <code>test</code> 和 <code>exec</code> 方法,還有 String 的 <code>match</code>、<code>replace</code>、<code>search</code>、<code>split</code> 方法都有使用到正規表達式。這些方法在 <a class="internal" href="/zh_tw/Core_JavaScript_1.5_%E5%8F%83%E8%80%83" title="zh tw/Core JavaScript 1.5 參考">Core JavaScript 參考</a> 中已有詳細說明。</p>
+<table class="fullwidth-table"> <tbody> <tr> <th>方法</th> <th>說明</th> </tr> <tr> <td><a class="internal" href="/zh_tw/Core_JavaScript_1.5_%E5%8F%83%E8%80%83/%E5%85%A8%E5%9F%9F%E7%89%A9%E4%BB%B6/RegExp/exec" title="zh tw/Core JavaScript 1.5 參考/全域物件/RegExp/exec">exec</a></td> <td>RegExp 的方法,在字串中比對以執行搜尋。他會返回搜尋資訊的陣列。</td> </tr> <tr> <td><a class="internal" href="/zh_tw/Core_JavaScript_1.5_%E5%8F%83%E8%80%83/%E5%85%A8%E5%9F%9F%E7%89%A9%E4%BB%B6/RegExp/test" title="zh tw/Core JavaScript 1.5 參考/全域物件/RegExp/test">test</a></td> <td>RegExp 的方法,在字串中比對以進行測試。他會返回 true 或 false。</td> </tr> <tr> <td><a class="internal" href="/zh_tw/Core_JavaScript_1.5_%E5%8F%83%E8%80%83/%E5%85%A8%E5%9F%9F%E7%89%A9%E4%BB%B6/String/match" title="zh tw/Core JavaScript 1.5 參考/全域物件/String/match">match</a></td> <td>String 的方法,在字串中比對以執行搜尋。他會返回搜尋資訊的陣列,或在比對不出時返回 null。</td> </tr> <tr> <td><a class="internal" href="/zh_tw/Core_JavaScript_1.5_%E5%8F%83%E8%80%83/%E5%85%A8%E5%9F%9F%E7%89%A9%E4%BB%B6/String/search" title="zh tw/Core JavaScript 1.5 參考/全域物件/String/search">search</a></td> <td>String 的方法,在字串中比對以進行測試。他會返回符合比對的索引,或在搜尋失敗時返回 -1。</td> </tr> <tr> <td><a class="internal" href="/zh_tw/Core_JavaScript_1.5_%E5%8F%83%E8%80%83/%E5%85%A8%E5%9F%9F%E7%89%A9%E4%BB%B6/String/replace" title="zh tw/Core JavaScript 1.5 參考/全域物件/String/replace">replace</a></td> <td>String 的方法,在字串中比對以執行搜尋,並以其他子字串取代符合比對的子字串。</td> </tr> <tr> <td><a class="internal" href="/zh_tw/Core_JavaScript_1.5_%E5%8F%83%E8%80%83/%E5%85%A8%E5%9F%9F%E7%89%A9%E4%BB%B6/String/split" title="zh tw/Core JavaScript 1.5 參考/全域物件/String/split">split</a></td> <td>String 的方法,使用正規表達式或固定的字串,把字串分割為子字串的陣列。</td> </tr> </tbody>
+</table>
+<p><small><strong>表 4.2: 使用了正規表達式的方法</strong></small></p>
+<p>當你想知道是否可以在字串裡找出某個模式,可以使用 <code>test</code> 或 <code>search</code> 方法。要更詳細的資訊(不過執行速度也慢)可以使用 <code>exec</code> 或 <code>match</code> 方法。如果你使用 <code>exec</code> 或 <code>match</code> 並且比對成功,這些方法會返回陣列,並更新相關聯的正規表達式物件包括預先定義的 <code>RegExp</code> 的屬性,如果比對失敗,<code>exec</code> 方法返回 <code>null</code>(可轉換為 false)。</p>
+<p>在以下的範例中,Script 使用了 <code>exec</code> 方法來在字串裡尋找符合的字串。</p>
+<pre>&lt;SCRIPT type="text/javascript"&gt;
+ myRe = /d(b+)d/g;
+ myArray = myRe.exec("cdbbdbsbz");
+&lt;/SCRIPT&gt;
+</pre>
+<p>如果你不需要存取正規表達式的屬性,另一個建立 <code>myArray</code> 的方式如下 Script︰</p>
+<pre>&lt;SCRIPT type="text/javascript"&gt;
+ myArray = /d(b+)d/g.exec("cdbbdbsbz");
+&lt;/SCRIPT&gt;
+</pre>
+<p>如果你想要從字串來建構正規表達式,還有其他選擇如下 Script︰</p>
+<pre>&lt;SCRIPT type="text/javascript"&gt;
+ myRe = new RegExp ("d(b+)d", "g");
+ myArray = myRe.exec("cdbbdbsbz");
+&lt;/SCRIPT&gt;
+</pre>
+<p>這些 Script 比對成功並返回陣列,並更新顯示在下表中的屬性。</p>
+<table class="fullwidth-table"> <tbody> <tr> <th>物件</th> <th>屬性或索引</th> <th>說明</th> <th>上面的範例</th> </tr> <tr> <td>myArray</td> <td> </td> <td>比對符合的字串和所有已記憶的子字串。</td> <td>{{ mediawiki.external('\"dbbd\", \"bb\"') }}</td> </tr> <tr> <td> </td> <td>index</td> <td>在輸入的字串中比對符合的索引位置。索引從 0 開始。</td> <td>1</td> </tr> <tr> <td> </td> <td>input</td> <td>原始的字串。</td> <td>"cdbbdbsbz"</td> </tr> <tr> <td> </td> <td>{{ mediawiki.external(0) }}</td> <td>最後一次比對符合的字元。</td> <td>"dbbd"</td> </tr> <tr> <td>myRe</td> <td>lastIndex</td> <td>下一個符合項的開始處的索引位置。(這個屬性只在正規表達式使用 g 選項時設定,選項的說明在 <a class="internal" href="/zh_tw/Core_JavaScript_1.5_%E6%95%99%E5%AD%B8/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E9%81%94%E5%BC%8F%E7%9A%84%E9%81%8B%E7%94%A8/%E4%BD%BF%E7%94%A8%E6%A8%99%E8%AA%8C%E7%9A%84%E9%80%B2%E9%9A%8E%E6%90%9C%E5%B0%8B" title="zh tw/Core JavaScript 1.5 教學/正則表達式的運用/使用標誌的進階搜尋">使用標誌的進階搜尋</a>。)</td> <td>5</td> </tr> <tr> <td> </td> <td>source</td> <td>模式的文字。在正規表達式建立時更新,而非執行時。</td> <td>"d(b+)d"</td> </tr> </tbody>
+</table>
+<p><small><strong>表 4.3: 正規表達式的執行結果。</strong></small></p>
+<p>如上第二個範例所示,你可以藉由物件的初始化子使用正規表達式,而無需代入到變數裡。然而,如果你這樣做的話,每一次使用的都會是新的正規表達式。因此,如果你使用這個形式而不代入到變數,之後你就沒辦法存取正規表達式的屬性。舉例來說,假設你有這個 Script︰</p>
+<pre>&lt;SCRIPT type="text/javascript"&gt;
+ myRe = /d(b+)d/g;
+ myArray = myRe.exec("cdbbdbsbz");
+ document.writeln("The value of lastIndex is " + myRe.lastIndex);
+&lt;/SCRIPT&gt;
+</pre>
+<p>Script 顯示︰</p>
+<pre>The value of lastIndex is 5
+</pre>
+<p>然而,如果你有這個 Script︰</p>
+<pre>&lt;SCRIPT type="text/javascript"&gt;
+ myArray = /d(b+)d/g.exec("cdbbdbsbz");
+ document.writeln("The value of lastIndex is " + /d(b+)d/g.lastIndex);
+&lt;/SCRIPT&gt;
+</pre>
+<p>他會顯示︰</p>
+<pre>The value of lastIndex is 0
+</pre>
+<p><code>/d(b+)d/g</code> 在兩個語句中是不同的正規表達式物件,也因此各自對 <code>lastIndex</code> 屬性有著不同的變數。如果你需要存取以物件初始化子所建立的正規表達式的屬性,你應該先把他代入到變數裡。</p>
+<div class="noinclude">
+<p>{{ PreviousNext("Core_JavaScript_1.5_教學:正規表達式模式的編寫", "Core_JavaScript_1.5_教學:正規表達式的運用:括弧子字串的比對結果的運用") }}</p>
+</div>
+<p>{{ languages( {"en": "en/Core_JavaScript_1.5_Guide/Working_with_Regular_Expressions", "es": "es/Gu\u00eda_JavaScript_1.5/Trabajar_con_expresiones_regulares", "fr": "fr/Guide_JavaScript_1.5/Travailler_avec_les_expressions_rationnelles", "ja": "ja/Core_JavaScript_1.5_Guide/Working_with_Regular_Expressions", "pl": "pl/Przewodnik_po_j\u0119zyku_JavaScript_1.5/Praca_z_wyra\u017ceniami_regularnymi" } ) }}</p>