From 310fd066e91f454b990372ffa30e803cc8120975 Mon Sep 17 00:00:00 2001 From: Florian Merz Date: Thu, 11 Feb 2021 12:56:40 +0100 Subject: unslug zh-cn: move --- files/zh-cn/web/javascript/guide/about/index.html | 136 ----------------- .../guide/javascript_overview/index.html | 136 ----------------- .../regular_expressions/boundaries/index.html | 7 - .../regular_expressions/quantifiers/index.html | 170 +++++++++++++++++++++ .../\351\207\217\350\257\215/index.html" | 170 --------------------- 5 files changed, 170 insertions(+), 449 deletions(-) delete mode 100644 files/zh-cn/web/javascript/guide/about/index.html delete mode 100644 files/zh-cn/web/javascript/guide/javascript_overview/index.html delete mode 100644 files/zh-cn/web/javascript/guide/regular_expressions/boundaries/index.html create mode 100644 files/zh-cn/web/javascript/guide/regular_expressions/quantifiers/index.html delete mode 100644 "files/zh-cn/web/javascript/guide/regular_expressions/\351\207\217\350\257\215/index.html" (limited to 'files/zh-cn/web/javascript/guide') diff --git a/files/zh-cn/web/javascript/guide/about/index.html b/files/zh-cn/web/javascript/guide/about/index.html deleted file mode 100644 index d8b77fece9..0000000000 --- a/files/zh-cn/web/javascript/guide/about/index.html +++ /dev/null @@ -1,136 +0,0 @@ ---- -title: 关于本指南 -slug: Web/JavaScript/Guide/About -tags: - - JavaScript - - 初学者 - - 指南 -translation_of: Web/JavaScript/Guide/Introduction -translation_of_original: Web/JavaScript/Guide/About ---- -

JavaScript 是一种跨平台的,基于对象的脚本语言。本指南介绍了所有您使用 JavaScript 所需要了解的事情。

- -

JavaScript 各版本中的新特性

- - -

- -

您应该已经了解的事情

- -

本指南假设您具有以下背景:

- - - -

JavaScript 版本

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
表格 1 JavaScript 和 Navigator 版本对照
JavaScript 版本Navigator 版本
JavaScript 1.0Navigator 2.0
JavaScript 1.1Navigator 3.0
JavaScript 1.2Navigator 4.0-4.05
JavaScript 1.3Navigator 4.06-4.7x
JavaScript 1.4 
JavaScript 1.5Navigator 6.0
- Mozilla (开源浏览器)
JavaScript 1.6Firefox 1.5,及其它基于 Mozilla 1.8 的产品
JavaScript 1.7Firefox 2,及其它基于 Mozilla 1.8.1 的产品
JavaScript 1.8Firefox 3,及其它基于 Gecko 1.9 的产品
- -

哪里可以找到 JavaScript 的信息

- -

JavaScript 文档包括以下书目:

- - - -

如果您刚刚开始接触 JavaScript,可以从 JavaScript 指南 开始。一旦掌握了基础知识,您可以从 JavaScript 参考 中获得更多关于特定的对象和语句的细节。

- -

学习 JavaScript 的窍门

- -

开始学习 JavaScript 很容易:您只需要一个流行的 Web 浏览器即可。这本指南中包含了一些仅在 Firefox(以及其它基于 Gecko 的浏览器)的近期版本中才有的特性,因此,建议您使用最新的 Firefox 浏览器。

- -

在Firefox中内嵌了两个用于测验JavaScript非常有效的工具: Web终端和Scratchpad。

- -

Web终端

- -

web终端会显示有关当前装载网页的信息,并且还包含命令行,您可以用它在当前的网页中执行 JavaScript 语句。

- -

要打开 web 终端,请在 Firefox 中的“工具”菜单中选择 “Web Developer“ 中的 "Web Console"。它显示在浏览器窗口的底部。在终端的底部是一个命令行,你可以输入 JavaScript, 而在上面的面板中可以看到输出。

- -

Image:ErrorConsole.png

- -

Scratchpad

- -

Web Console 在执行 JavaScript 的单个命令行时是非常好的,但是在执行多行命令时就没那么方便了,而且你也不可能在 Web Console 中保存你的代码。因此对于更复杂的例子,  Scratchpad 是一个更好的工具。

- -

 

- -

要打开 Scratchpad, 可以在 "Web Developer" 菜单下选择 "Scratchpad" , 它在 Firefox 中也位于 "Tools" 菜单下。它是一个单独的窗口以及编辑器,你可以使用它来写和执行浏览器中的代码。你也同样可以将脚本保存在硬盘,并且从硬盘装载。

- -

如果你选择了 "Inspect",  pad 中的代码会在浏览器中执行,其结果也会以 comment 的形式插入到 pad 中: 

- -

- -

文档约定

- -

JavaScript 应用可以运行在许多操作系统之上;本书中所给出的信息适用于所有这些系统。文件和目录的路径将以 Windows 的形式给出(反斜线用于分隔目录名)。对于 Unix 系统,目录的路径是相同的,只是将反斜线换成斜线即可。

- -

本指南使用如下形式的统一资源定位符(URL):

- -

http://server.domain/path/file.html

- -

在这些 URL 中,server 表示您的应用所运行的服务器的名称,比如 research1 或者 wwwdomain 表示您的互联网域名,比如 netscape.com 或者 uiuc.edupath 表示在服务器中的目录结构;而 file.html 则表示特定的文件名。一般来讲,URL 中的斜体部分为占位符,而其中的等宽字体则为原文。如果您的服务器启用了安全套接字层(SSL),则需要将 URL 中的 http 换成 https。

- -

本指南使用如下字体约定:

- - - -
{{ PreviousNext("JavaScript/Guide", "JavaScript/Guide/JavaScript_Overview") }}
diff --git a/files/zh-cn/web/javascript/guide/javascript_overview/index.html b/files/zh-cn/web/javascript/guide/javascript_overview/index.html deleted file mode 100644 index 96114a1f43..0000000000 --- a/files/zh-cn/web/javascript/guide/javascript_overview/index.html +++ /dev/null @@ -1,136 +0,0 @@ ---- -title: JavaScript 概述 -slug: Web/JavaScript/Guide/JavaScript_Overview -tags: - - ECMAScript -translation_of: Web/JavaScript/Guide/Introduction -translation_of_original: Web/JavaScript/Guide/JavaScript_Overview ---- -

本节将介绍并讨论 JavaScript 的基本概念。

- -

什么是 JavaScript?

- -

JavaScript 是一种跨平台,面向对象的脚本语言。作为一种小巧且轻量级的语言,JavaScript 无意于独立运行,而是被设计为可以轻易嵌入到其它的产品和应用中,比如 Web 浏览器。在宿主环境中,JavaScript 可以被连接到环境中的对象之上,以提供对其的编程控制。

- -

核心的 JavaScript 中包含有一组核心的对象,包括 Array,DateMath,以及一组核心的语言要素,包括操作符,控制结构和语句。出于多种目的,可以通过为其增补附加的对象,对核心 JavaScript 加以扩展;例如:

- - - -

借由 JavaScript 的 LiveConnect 功能,您可以让 Java 和 JavaScript 间实现通讯。从 JavaScript 中,您可以创建 Java 对象并访问它们的公共方法和域。从 Java 中,也可以访问 JavaScript 的对象,属性和方法。

- -

Netscape 发明了 JavaScript 并将 JavaScript 首先用于 Netscape 浏览器中。

- -

JavaScript 和 Java

- -

JavaScript 和 Java 虽然在某些方面相似,但在另外一些方面确有着本质的不同。JavaScript 语言类似于 Java 语言,但是没有 Java 的类型静态化和强类型检查。JavaScript 大部分的表达式语法,命名规范以及基本的控制流构成都和 Java 相同。正是由于这个原因,JavaScript 才从 LiveScript 改名得来。

- -

不同于 Java 的通过声明而形成的编译时的类系统,JavaScript 支持基于少量数据类型的运行时系统,这些数据类型用以表示数值、布尔值和字符串。JavaScript 使用基于原型的对象模型,而不是更常见的基于类的对象模型。基于原型的对象模型提供了动态的继承能力,实际上,究竟什么得到继承,对于每个对象都可能不同。JavaScript 还支持无需任何特殊的声明要求的函数。函数可以作为对象的属性,当成松散类型方法(loosely typed method)来执行。

- -

相比 Java 而言,JavaScript 是一种格式相当自由的语言。无需声明所有的变量,类和方法。无需关心方法是公共的,私有的或者是保护的,也无需实现接口。变量,参数,以及返回值都无需显式的类型声明。

- -

Java 是基于类的编程语言,目标在于快速的执行和类型安全。这里的类型安全,可以是比如,你不能将 Java 的整数强制转换为对象引用,或者通过篡改 Java 字节码来达到访问私有内存区域的目的。Java 基于类的模型意味着程序完全由类及其方法构成。这些类的继承以及强类型通常需要紧密耦合的对象层级结构。这些需求使得 Java 编程远比 JavaScript 编程要复杂。

- -

相比之下,JavaScript 的设计理念源于一系列更小巧的动态类型语言,比如 HyperTalk 和 dBASE。这些脚本语言以其更为简单的语法,更专业化的内建功能,以及最小化的对象创建需求,提供了更为大众化的编程工具。

- - - - - - - - - - - - - - - - - - - - - - - -
表 1.1 JavaScript 与 Java 的对比
JavaScriptJava
面向对象的。对象的类型间没有区别。继承是基于原型机制实现的,且属性和方法可以动态地添加到任何对象之上。基于类的。对象被划分为类和实例,且所有的继承是通过类的层级结构实现的。类或者实例不能动态地添加属性或方法。
变量的数据类型无需声明(动态化类型)。变量的数据类型必需声明(静态化类型)。
不能自动地写入硬盘不能自动地写入硬盘
- -

有关 JavaScript 和 Java 之间区别的更多信息,参见 对象模型的细节

- -

JavaScript 和 ECMAScript 规范

- -

Netscape 发明了 JavaScript 并将 JavaScript 首先用于 Netscape 浏览器中。不过, Netscape 正在与 Ecma International — 欧洲信息和通讯标准化协会(ECMA 曾是 European Computer Manufacturers Association,既欧洲计算机制造商协会的缩写)一道致力于交付一个基于核心 JavaScript 的,标准化的,国际化的编程语言,既 ECMAScript。ECMAScript 在所有支持该标准的应用程序中具有相同的特性。其它公司可以使用开放的标准语言来开发它们的 JavaScript 实现。ECMAScript 标准在 ECMA-262 规范中加以记述。

- -

ECMA-262 标准由 ISO(International Organization for Standardization,既国际化标准化组织)批准为 ISO-16262。在 Mozilla 网站上可以找到 PDF 版本的 ECMA-262 (过时的版本)。在 Ecma International 的网站 上也可以找到该规范。ECMAScript 规范没有描述文档对象模型(DOM)。该模型由 World Wide Web Consortium (W3C) 完成标准化。DOM 定义了 HTML 文档对象呈现在脚本中的方式。

- -

JavaScript 版本和 ECMAScript 版本之间的关系

- -

Netscape 与 Ecma International 的紧密合作形成了 ECMAScript 规范(ECMA-262)。下面的表格描述了 JavaScript 版本和 ECMAScript 版本之间的关系。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
表 1.2 JavaScript 版本和 ECMAScript 版本
JavaScript 版本与 ECMAScript 版本的关系
JavaScript 1.1ECMA-262,第 1 版 基于 JavaScript 1.1.
JavaScript 1.2ECMA-262 在 JavaScript 1.2 发布时尚未完成。由于以下原因,JavaScript 1.2 并不与 ECMA-262,第 1 版完全兼容: -
    -
  • Netscape 在 JavaScript 1.2 开发了一些新的特性尚未被 ECMA-262 采纳。
  • -
  • ECMA-262 添加了两项新特性:基于 Unicode 的国际化,以及跨平台的一致行为。而 JavaScript 1.2 的某些特性,例如 Date 对象,是依赖于平台的,且具有特定于平台的行为。
  • -
-
JavaScript 1.3JavaScript 1.3 完全兼容于 ECMA-262,第 1 版。
- JavaScript 1.3 解决了 JavaScript 1.2 与 ECMA-262 之间的不一致性,同时保留了 JavaScript 1.2 中的附加特性,除了  ==!= 被修改以便顺应于 ECMA-262 之外。
JavaScript 1.4JavaScript 1.4 完全兼容于 ECMA-262,第 1 版。
- ECMAScript 规范的第三版在 JavaScript 1.4 发布时尚未最终完成。
JavaScript 1.5JavaScript 1.5 完全兼容于 ECMA-262,第 3 版。
- -
注:ECMA-262,第 2 版仅包含对第 1 版规范的细微的编辑性的改动和错误修正。由 Ecma International 的 TC39 工作组发布的最新版本为 ECMAScript 版本 5.1
- -

JavaScript 参考 中标明了语言中的哪些特性兼容于 ECMAScript。

- -

JavaScript 将总会包含某些 ECMAScript 规范中所没有的特性;JavaScript 兼容于 ECMAScript,同时提供附加特性。

- -

JavaScript 文档相较于 ECMAScript 规范

- -

ECMAScript 规范了实现 ECMAScript 的一组需求;它有助于您确定某项 JavaScript 特性是否也为其它 ECMAScript 的实现所支持。如果您想编写仅仅使用 ECMAScript 所支持的特性的代码,那么您可能需要参考 ECMAScript 规范。

- -

ECMAScript 文档的目的不在于帮助脚本程序员;关于脚本编写的信息,请参考 JavaScript 文档。

- -

JavaScript 和 ECMAScript 术语

- -

ECMAScript 规范使用的术语和语法对于 JavaScript 程序员而言,可能会有点陌生。尽管对语言的描述方式在 ECMAScript 中可能不尽相同,但是语言本身还是相同的。JavaScript 支持 ECMAScript 规范中所勾勒出的全部功能。

- -

JavaScript 文档描述了语言中适合于 JavaScript 程序员的方面。例如:

- - - -
{{ PreviousNext("JavaScript/Guide/About", "JavaScript/Guide/Values,_variables,_and_literals") }}
diff --git a/files/zh-cn/web/javascript/guide/regular_expressions/boundaries/index.html b/files/zh-cn/web/javascript/guide/regular_expressions/boundaries/index.html deleted file mode 100644 index 8ff8e9730b..0000000000 --- a/files/zh-cn/web/javascript/guide/regular_expressions/boundaries/index.html +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: Boundaries -slug: Web/JavaScript/Guide/Regular_Expressions/Boundaries -translation_of: Web/JavaScript/Guide/Regular_Expressions/Assertions -translation_of_original: Web/JavaScript/Guide/Regular_Expressions/Boundaries ---- -

重定向至 断言

diff --git a/files/zh-cn/web/javascript/guide/regular_expressions/quantifiers/index.html b/files/zh-cn/web/javascript/guide/regular_expressions/quantifiers/index.html new file mode 100644 index 0000000000..bcc2a35e13 --- /dev/null +++ b/files/zh-cn/web/javascript/guide/regular_expressions/quantifiers/index.html @@ -0,0 +1,170 @@ +--- +title: 量词 +slug: Web/JavaScript/Guide/Regular_Expressions/量词 +translation_of: Web/JavaScript/Guide/Regular_Expressions/Quantifiers +--- +

{{jsSidebar("JavaScript Guide")}}

+ +

量词表示要匹配的字符或表达式的数量。

+ +
{{EmbedInteractiveExample("pages/js/regexp-quantifiers.html", "taller")}}
+ +

类型

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CharactersMeaning
x* +

将前面的项“x”匹配0次或更多次。例如,/bo*/匹配“A ghost booooed”中的“boooo”和“A bird warbled”中的“b”,但在“A goat grunt”中没有匹配。

+
x+ +

将前一项“x”匹配1次或更多次。等价于{1,}。例如,/a+/匹配“candy”中的“a”和“caaaaaaandy”中的“a”。

+
x? +

将前面的项“x”匹配0或1次。例如,/ e ?勒?/匹配angel中的el和angle中的le。

+ +

如果立即在任何量词*、+、?或{}之后使用,则使量词是非贪婪的(匹配最小次数),而不是默认的贪婪的(匹配最大次数)。

+
x{n} +

其中“n”是一个正整数,与前一项“x”的n次匹配。例如,/a{2}/ 不匹配“candy”中的“a”,但它匹配“caandy”中的所有“a”,以及“caaandy”中的前两个“a”。

+
x{n,} +

其中,“n”是一个正整数,与前一项“x”至少匹配“n”次。例如,/a{2,}/不匹配“candy”中的“a”,但匹配“caandy”和“caaaaaaandy”中的所有a。

+
x{n,m} +

其中,“n”是0或一个正整数,“m”是一个正整数,而m > n至少与前一项“x”匹配,最多与“m”匹配。例如,/a{1,3}/不匹配“cndy”中的“a”,“candy”中的“a”,“caandy”中的两个“a”,以及“caaaaaaandy”中的前三个“a”。注意,当匹配“caaaaaaandy”时,匹配的是“aaa”,即使原始字符串中有更多的“a”。

+
+

x*?
+ x+?
+ x??
+ x{n}?
+ x{n,}?
+ x{n,m}?

+
+

默认情况下,像 和 这样的量词是“贪婪的”,这意味着它们试图匹配尽可能多的字符串。?量词后面的字符使量词“非贪婪”:意思是它一旦找到匹配就会停止。例如,给定一个字符串“some <foo> <bar> new </bar> </foo> thing”:

+ +
    +
  • /<.*>/ will match "<foo> <bar> new </bar> </foo>"
  • +
  • /<.*?>/ will match "<foo>"
  • +
+
+ +

举例说明

+ +

重复模式

+ +
var wordEndingWithAs = /\w+a+/;
+var delicateMessage = "This is Spartaaaaaaa";
+
+console.table(delicateMessage.match(wordEndingWithAs)); // [ "Spartaaaaaaa" ]
+ +

计算字符集

+ +
var singleLetterWord = /\b\w\b/g;
+var notSoLongWord = /\b\w{1,6}\b/g;
+var loooongWord = /\b\w{13,}\b/g;
+
+var sentence = "Why do I have to learn multiplication table?";
+
+console.table(sentence.match(singleLetterWord)); // ["I"]
+console.table(sentence.match(notSoLongWord));    // [ "Why", "do", "I", "have", "to", "learn", "table" ]
+console.table(sentence.match(loooongWord));      // ["multiplication"]可选可选字符
+
+ +

 可选字符

+ +
var britishText = "He asked his neighbour a favour.";
+var americanText = "He asked his neighbor a favor.";
+
+var regexpEnding = /\w+ou?r/g;
+// \w+ One or several letters
+// o   followed by an "o",
+// u?  optionally followed by a "u"
+// r   followed by an "r"
+
+console.table(britishText.match(regexpEnding));
+// ["neighbour", "favour"]
+
+console.table(americanText.match(regexpEnding));
+// ["neighbor", "favor"]
+
+ +

贪婪 与 非贪婪的

+ +
var text = "I must be getting somewhere near the centre of the earth.";
+var greedyRegexp = /[\w ]+/;
+// [\w ]      a letter of the latin alphabet or a whitespace
+//      +     one or several times
+
+console.log(text.match(greedyRegexp)[0]);
+// "I must be getting somewhere near the centre of the earth"
+// almost all of the text matches (leaves out the dot character)
+
+var nonGreedyRegexp = /[\w ]+?/; // Notice the question mark
+console.log(text.match(nonGreedyRegexp));
+// "I"
+// The match is the smallest one possible
+
+ +

规范

+ + + + + + + + + + +
Specification
{{SpecName('ESDraft', '#sec-quantifier', 'RegExp: Quantifiers')}}
+ +

浏览器支持

+ +

For browser compatibility information, check out the main Regular Expressions compatibility table.

+ +

See also

+ + diff --git "a/files/zh-cn/web/javascript/guide/regular_expressions/\351\207\217\350\257\215/index.html" "b/files/zh-cn/web/javascript/guide/regular_expressions/\351\207\217\350\257\215/index.html" deleted file mode 100644 index bcc2a35e13..0000000000 --- "a/files/zh-cn/web/javascript/guide/regular_expressions/\351\207\217\350\257\215/index.html" +++ /dev/null @@ -1,170 +0,0 @@ ---- -title: 量词 -slug: Web/JavaScript/Guide/Regular_Expressions/量词 -translation_of: Web/JavaScript/Guide/Regular_Expressions/Quantifiers ---- -

{{jsSidebar("JavaScript Guide")}}

- -

量词表示要匹配的字符或表达式的数量。

- -
{{EmbedInteractiveExample("pages/js/regexp-quantifiers.html", "taller")}}
- -

类型

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CharactersMeaning
x* -

将前面的项“x”匹配0次或更多次。例如,/bo*/匹配“A ghost booooed”中的“boooo”和“A bird warbled”中的“b”,但在“A goat grunt”中没有匹配。

-
x+ -

将前一项“x”匹配1次或更多次。等价于{1,}。例如,/a+/匹配“candy”中的“a”和“caaaaaaandy”中的“a”。

-
x? -

将前面的项“x”匹配0或1次。例如,/ e ?勒?/匹配angel中的el和angle中的le。

- -

如果立即在任何量词*、+、?或{}之后使用,则使量词是非贪婪的(匹配最小次数),而不是默认的贪婪的(匹配最大次数)。

-
x{n} -

其中“n”是一个正整数,与前一项“x”的n次匹配。例如,/a{2}/ 不匹配“candy”中的“a”,但它匹配“caandy”中的所有“a”,以及“caaandy”中的前两个“a”。

-
x{n,} -

其中,“n”是一个正整数,与前一项“x”至少匹配“n”次。例如,/a{2,}/不匹配“candy”中的“a”,但匹配“caandy”和“caaaaaaandy”中的所有a。

-
x{n,m} -

其中,“n”是0或一个正整数,“m”是一个正整数,而m > n至少与前一项“x”匹配,最多与“m”匹配。例如,/a{1,3}/不匹配“cndy”中的“a”,“candy”中的“a”,“caandy”中的两个“a”,以及“caaaaaaandy”中的前三个“a”。注意,当匹配“caaaaaaandy”时,匹配的是“aaa”,即使原始字符串中有更多的“a”。

-
-

x*?
- x+?
- x??
- x{n}?
- x{n,}?
- x{n,m}?

-
-

默认情况下,像 和 这样的量词是“贪婪的”,这意味着它们试图匹配尽可能多的字符串。?量词后面的字符使量词“非贪婪”:意思是它一旦找到匹配就会停止。例如,给定一个字符串“some <foo> <bar> new </bar> </foo> thing”:

- -
    -
  • /<.*>/ will match "<foo> <bar> new </bar> </foo>"
  • -
  • /<.*?>/ will match "<foo>"
  • -
-
- -

举例说明

- -

重复模式

- -
var wordEndingWithAs = /\w+a+/;
-var delicateMessage = "This is Spartaaaaaaa";
-
-console.table(delicateMessage.match(wordEndingWithAs)); // [ "Spartaaaaaaa" ]
- -

计算字符集

- -
var singleLetterWord = /\b\w\b/g;
-var notSoLongWord = /\b\w{1,6}\b/g;
-var loooongWord = /\b\w{13,}\b/g;
-
-var sentence = "Why do I have to learn multiplication table?";
-
-console.table(sentence.match(singleLetterWord)); // ["I"]
-console.table(sentence.match(notSoLongWord));    // [ "Why", "do", "I", "have", "to", "learn", "table" ]
-console.table(sentence.match(loooongWord));      // ["multiplication"]可选可选字符
-
- -

 可选字符

- -
var britishText = "He asked his neighbour a favour.";
-var americanText = "He asked his neighbor a favor.";
-
-var regexpEnding = /\w+ou?r/g;
-// \w+ One or several letters
-// o   followed by an "o",
-// u?  optionally followed by a "u"
-// r   followed by an "r"
-
-console.table(britishText.match(regexpEnding));
-// ["neighbour", "favour"]
-
-console.table(americanText.match(regexpEnding));
-// ["neighbor", "favor"]
-
- -

贪婪 与 非贪婪的

- -
var text = "I must be getting somewhere near the centre of the earth.";
-var greedyRegexp = /[\w ]+/;
-// [\w ]      a letter of the latin alphabet or a whitespace
-//      +     one or several times
-
-console.log(text.match(greedyRegexp)[0]);
-// "I must be getting somewhere near the centre of the earth"
-// almost all of the text matches (leaves out the dot character)
-
-var nonGreedyRegexp = /[\w ]+?/; // Notice the question mark
-console.log(text.match(nonGreedyRegexp));
-// "I"
-// The match is the smallest one possible
-
- -

规范

- - - - - - - - - - -
Specification
{{SpecName('ESDraft', '#sec-quantifier', 'RegExp: Quantifiers')}}
- -

浏览器支持

- -

For browser compatibility information, check out the main Regular Expressions compatibility table.

- -

See also

- - -- cgit v1.2.3-54-g00ecf