aboutsummaryrefslogtreecommitdiff
path: root/files/zh-cn/web/javascript/reference/global_objects/regexp/lastindex/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'files/zh-cn/web/javascript/reference/global_objects/regexp/lastindex/index.html')
-rw-r--r--files/zh-cn/web/javascript/reference/global_objects/regexp/lastindex/index.html128
1 files changed, 128 insertions, 0 deletions
diff --git a/files/zh-cn/web/javascript/reference/global_objects/regexp/lastindex/index.html b/files/zh-cn/web/javascript/reference/global_objects/regexp/lastindex/index.html
new file mode 100644
index 0000000000..4931537cb6
--- /dev/null
+++ b/files/zh-cn/web/javascript/reference/global_objects/regexp/lastindex/index.html
@@ -0,0 +1,128 @@
+---
+title: RegExp.lastIndex
+slug: Web/JavaScript/Reference/Global_Objects/RegExp/lastIndex
+tags:
+ - JavaScript
+ - Property
+ - RegExp
+ - Regular Expressions
+translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/lastIndex
+---
+<div>
+ {{JSRef("Global_Objects", "RegExp")}}</div>
+<h2 id="Summary" name="Summary" style="margin-bottom: 20px; line-height: 30px;">概述</h2>
+<p><code><strong>lastIndex</strong></code> 是正则表达式的一个可读可写的整型属性,用来指定下一次匹配的起始索引。</p>
+<div>
+ {{js_property_attributes(1,0,0)}}</div>
+<h2 id="语法" style="margin-bottom: 20px; line-height: 30px;">语法</h2>
+<pre class="syntaxbox language-html" style="margin-bottom: 0px; padding: 1em; border-left-width: 6px; border-left-style: solid; font-family: Consolas, Monaco, 'Andale Mono', monospace; font-size: 14px; direction: ltr; white-space: normal; text-shadow: none; background-color: rgba(212, 221, 228, 0.498039);"><var>lastIndex</var> = <var>regExpObj</var>.lastIndex;</pre>
+<h2 id="Description" name="Description" style="margin-bottom: 20px; line-height: 30px;">描述</h2>
+<p>只有正则表达式使用了表示全局检索的 "<code>g</code>" 标志时,该属性才会起作用。此时应用下面的规则:</p>
+<ul>
+ <li>如果 <code>lastIndex</code> 大于字符串的长度,则 <code>regexp.test</code> 和 <code>regexp.exec</code> 将会匹配失败,然后 <code>lastIndex</code> 被设置为 0。</li>
+ <li>如果 <code>lastIndex</code> 等于字符串的长度,且该正则表达式匹配空字符串,则该正则表达式匹配从 <code>lastIndex</code> 开始的字符串。(then the regular expression matches input starting at <code style="font-style: normal;">lastIndex</code>.)</li>
+ <li>如果 <code>lastIndex</code> 等于字符串的长度,且该正则表达式不匹配空字符串 ,则该正则表达式不匹配字符串,<code>lastIndex</code> 被设置为 0.。</li>
+ <li>否则,<code>lastIndex</code> 被设置为紧随最近一次成功匹配的下一个位置。</li>
+</ul>
+<h2 id="示例" style="margin-bottom: 20px; line-height: 30px;">示例</h2>
+<p>考虑下面的语句:</p>
+<pre class="brush: js">var re = /(hi)?/g;</pre>
+<div class="line-number" style="margin-top: 1em; position: absolute; left: 0px; right: 0px; line-height: inherit; top: 0px; background: 0px 0px;">
+  </div>
+<p>匹配空字符串</p>
+<pre class="brush: js">console.log(re.exec("hi"));
+console.log(re.lastIndex);</pre>
+<div class="line-number" style="margin-top: 1em; position: absolute; left: 0px; right: 0px; line-height: inherit; top: 0px; background: 0px 0px;">
+  </div>
+<div class="line-number" style="margin-top: 1em; position: absolute; left: 0px; right: 0px; line-height: inherit; top: 19px; background: 0px 0px;">
+  </div>
+<p>返回 <code>["hi", "hi"]</code> ,<code>lastIndex</code> 等于 2。</p>
+<pre class="brush: js">console.log(re.exec("hi"));
+console.log(re.lastIndex);</pre>
+<div class="line-number" style="margin-top: 1em; position: absolute; left: 0px; right: 0px; line-height: inherit; top: 0px; background: 0px 0px;">
+  </div>
+<div class="line-number" style="margin-top: 1em; position: absolute; left: 0px; right: 0px; line-height: inherit; top: 19px; background: 0px 0px;">
+  </div>
+<p>返回 <code>["", undefined]</code>,即一个数组,其第 0 个元素为匹配的字符串。此种情况下为空字符串,是因为 <code>lastIndex</code> 为 2(且一直是 2),"<code>hi</code>" 长度为 2。</p>
+<h2 id="规范" style="margin-bottom: 20px; line-height: 30px;">规范</h2>
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Specification</th>
+ <th scope="col">Status</th>
+ <th scope="col">Comment</th>
+ </tr>
+ <tr>
+ <td>ECMAScript 3rd Edition. Implemented in JavaScript 1.2.</td>
+ <td>Standard</td>
+ <td>Initial definition.<br>
+ JavaScript 1.5: <code>lastIndex</code> is a property of a <code>RegExp</code> instance, not the <code>RegExp</code> object.</td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES5.1', '#sec-15.10.7.5', 'RegExp.lastIndex')}}</td>
+ <td>{{Spec2('ES5.1')}}</td>
+ <td> </td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES6', '#sec-properties-of-regexp-instances', 'RegExp.lastIndex')}}</td>
+ <td>{{Spec2('ES6')}}</td>
+ <td> </td>
+ </tr>
+ </tbody>
+</table>
+<h2 id="浏览器兼容性" style="margin-bottom: 20px; line-height: 30px;">浏览器兼容性</h2>
+<p>{{ CompatibilityTable() }}</p>
+<div id="compat-desktop">
+ <table class="compat-table">
+ <tbody>
+ <tr>
+ <th style="line-height: 16px;">Feature</th>
+ <th style="line-height: 16px;">Chrome</th>
+ <th style="line-height: 16px;">Firefox (Gecko)</th>
+ <th style="line-height: 16px;">Internet Explorer</th>
+ <th style="line-height: 16px;">Opera</th>
+ <th style="line-height: 16px;">Safari</th>
+ </tr>
+ <tr>
+ <td>Basic support</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+<div id="compat-mobile">
+ <table class="compat-table">
+ <tbody>
+ <tr>
+ <th style="line-height: 16px;">Feature</th>
+ <th style="line-height: 16px;">Android</th>
+ <th style="line-height: 16px;">Chrome for Android</th>
+ <th style="line-height: 16px;">Firefox Mobile (Gecko)</th>
+ <th style="line-height: 16px;">IE Mobile</th>
+ <th style="line-height: 16px;">Opera Mobile</th>
+ <th style="line-height: 16px;">Safari Mobile</th>
+ </tr>
+ <tr>
+ <td>Basic support</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+<h2 id="See_also" name="See_also" style="margin-bottom: 20px; line-height: 30px;">相关链接</h2>
+<ul>
+ <li>{{jsxref("RegExp.prototype.ignoreCase")}}</li>
+ <li>{{jsxref("RegExp.prototype.global")}}</li>
+ <li>{{jsxref("RegExp.prototype.multiline")}}</li>
+ <li>{{jsxref("RegExp.prototype.source")}}</li>
+ <li>{{jsxref("RegExp.prototype.sticky")}}</li>
+</ul>