From 531742d877fb107de1db41d3e30026d24fef6fc2 Mon Sep 17 00:00:00 2001 From: JasonLamv-t Date: Mon, 10 Jul 2023 11:40:05 +0800 Subject: [PATCH 1/3] [zh-cn]: Update translation of String.endsWith() --- .../global_objects/string/endswith/index.md | 46 ++++++++----------- 1 file changed, 19 insertions(+), 27 deletions(-) diff --git a/files/zh-cn/web/javascript/reference/global_objects/string/endswith/index.md b/files/zh-cn/web/javascript/reference/global_objects/string/endswith/index.md index 53ae306954e526..655ae9069c6d54 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/string/endswith/index.md +++ b/files/zh-cn/web/javascript/reference/global_objects/string/endswith/index.md @@ -5,56 +5,47 @@ slug: Web/JavaScript/Reference/Global_Objects/String/endsWith {{JSRef}} -**`endsWith()`** 方法用来判断当前字符串是否是以另外一个给定的子字符串“结尾”的,根据判断结果返回 `true` 或 `false`。 +**`endsWith()`** 方法用于判断一个字符串是否以指定字符串结尾,如果是则返回 `true`,否则返回 `false`。 {{EmbedInteractiveExample("pages/js/string-endswith.html")}} ## 语法 -```plain -str.endsWith(searchString[, length]) +```js-nolint +endsWith(searchString) +endsWith(searchString, endPosition) ``` ### 参数 - `searchString` - - : 要搜索的子字符串。 -- `length` {{optional_inline}} - - : 作为 `str` 的长度。默认值为 `str.length`。 + - : 要搜索的作为结尾的字符串,[不能是正则表达式](/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/RegExp#正则表达式的特殊处理)。所有非正则表达式的值都会被[强制转换为字符串](/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String#字符串强制转换),因此如果该参数被省略或传入 `undefined`,`endsWith()` 方法会在字符串中搜索`"undefined"`,这通常不是你想要的。 +- `endPosition` {{optional_inline}} + - : 预期找到 `searchString` 的末尾位置(即 `searchString` 最后一个字符的索引加 1 )。默认为 `str.length`。 ### 返回值 -如果传入的子字符串在搜索字符串的末尾则返回**`true`**;否则将返回 **`false`**。 +如果被检索字符串的末尾出现了指定的字符串(包括 `searchString` 为空字符串的情况),则返回 **`true`**;否则返回 **`false`**。 -## 描述 - -这个方法帮助你确定一个字符串是否在另一个字符串的末尾。这个方法是大小写敏感的。 +### 异常 -## Polyfill +- {{jsxref("TypeError")}} + - : 如果 `searchString` [是一个正则表达式](/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/RegExp#正则表达式的特殊处理),则会抛出。 -这个方法已经加入到 ECMAScript 6 标准当中,但是可能还没有在所有的 JavaScript 实现中可用。然而,你可以通过如下的代码片段扩展 `String.prototype.endsWith()` 实现兼容: +## 描述 -```js -if (!String.prototype.endsWith) { - String.prototype.endsWith = function(search, this_len) { - if (this_len === undefined || this_len > this.length) { - this_len = this.length; - } - return this.substring(this_len - search.length, this_len) === search; - }; -} -``` +这个方法可以让你确定一个字符串是否以另一个字符串结尾。该方法区分大小写。 ## 示例 -### 使用 `endsWith()` +### 使用 endsWith() ```js -var str = "To be, or not to be, that is the question."; +const str = "大家好,我是练习时长两年半的个人练习生。"; -alert( str.endsWith("question.") ); // true -alert( str.endsWith("to be") ); // false -alert( str.endsWith("to be", 19) ); // true +console.log(str.endsWith("练习生。")); // true +console.log(str.endsWith("练习")); // false +console.log(str.endsWith("练习", 8)); // true ``` ## 规范 @@ -67,6 +58,7 @@ alert( str.endsWith("to be", 19) ); // true ## 参见 +- [`core-js` 中 `String.prototype.endsWith` 的 polyfill](https://github.com/zloirock/core-js#ecmascript-string-and-regexp) - {{jsxref("String.prototype.startsWith()")}} - {{jsxref("String.prototype.includes()")}} - {{jsxref("String.prototype.indexOf()")}} From c54b9e0485df3d696f3fde0dd4ac3ba3d12fbad0 Mon Sep 17 00:00:00 2001 From: Jason Lam Date: Mon, 10 Jul 2023 14:03:00 +0800 Subject: [PATCH 2/3] Apply suggestions from code review Co-authored-by: A1lo --- .../reference/global_objects/string/endswith/index.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/files/zh-cn/web/javascript/reference/global_objects/string/endswith/index.md b/files/zh-cn/web/javascript/reference/global_objects/string/endswith/index.md index 655ae9069c6d54..f1603fef344f6d 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/string/endswith/index.md +++ b/files/zh-cn/web/javascript/reference/global_objects/string/endswith/index.md @@ -21,7 +21,7 @@ endsWith(searchString, endPosition) - `searchString` - : 要搜索的作为结尾的字符串,[不能是正则表达式](/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/RegExp#正则表达式的特殊处理)。所有非正则表达式的值都会被[强制转换为字符串](/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String#字符串强制转换),因此如果该参数被省略或传入 `undefined`,`endsWith()` 方法会在字符串中搜索`"undefined"`,这通常不是你想要的。 - `endPosition` {{optional_inline}} - - : 预期找到 `searchString` 的末尾位置(即 `searchString` 最后一个字符的索引加 1 )。默认为 `str.length`。 + - : 预期找到 `searchString` 的末尾位置(即 `searchString` 最后一个字符的索引加 1)。默认为 `str.length`。 ### 返回值 @@ -41,11 +41,11 @@ endsWith(searchString, endPosition) ### 使用 endsWith() ```js -const str = "大家好,我是练习时长两年半的个人练习生。"; +const str = "生存还是毁灭,这是一个问题。"; -console.log(str.endsWith("练习生。")); // true -console.log(str.endsWith("练习")); // false -console.log(str.endsWith("练习", 8)); // true +console.log(str.endsWith("问题。")); // true +console.log(str.endsWith("毁灭")); // false +console.log(str.endsWith("毁灭", 6)); // true ``` ## 规范 From 4be7773869a5e78f04e5190b3b1f6786dabb5e0c Mon Sep 17 00:00:00 2001 From: Jason Lam Date: Mon, 10 Jul 2023 14:03:10 +0800 Subject: [PATCH 3/3] Apply suggestions from code review Co-authored-by: A1lo --- .../reference/global_objects/string/endswith/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/zh-cn/web/javascript/reference/global_objects/string/endswith/index.md b/files/zh-cn/web/javascript/reference/global_objects/string/endswith/index.md index f1603fef344f6d..ca7e7807c23dbd 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/string/endswith/index.md +++ b/files/zh-cn/web/javascript/reference/global_objects/string/endswith/index.md @@ -19,7 +19,7 @@ endsWith(searchString, endPosition) ### 参数 - `searchString` - - : 要搜索的作为结尾的字符串,[不能是正则表达式](/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/RegExp#正则表达式的特殊处理)。所有非正则表达式的值都会被[强制转换为字符串](/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String#字符串强制转换),因此如果该参数被省略或传入 `undefined`,`endsWith()` 方法会在字符串中搜索`"undefined"`,这通常不是你想要的。 + - : 要搜索的作为结尾的字符串,[不能是正则表达式](/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/RegExp#正则表达式的特殊处理)。所有非正则表达式的值都会被[强制转换为字符串](/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String#字符串强制转换),因此如果该参数被省略或传入 `undefined`,`endsWith()` 方法会在字符串中搜索 `"undefined"`,这通常不是你想要的。 - `endPosition` {{optional_inline}} - : 预期找到 `searchString` 的末尾位置(即 `searchString` 最后一个字符的索引加 1)。默认为 `str.length`。