【问题标题】:How to remove digits from string. based on the length and remove other letters with it [closed]如何从字符串中删除数字。根据长度并用它删除其他字母[关闭]
【发布时间】:2020-09-18 01:06:14
【问题描述】:
const item = "Dell Model 23506A Laptop M2";
const item2 = item.replace(/\d{2,}/g, "");

上面的代码将删除任何“在一行中找到超过 2 个数字的单词,但只会从 Word 中删除数字。

上述示例的最终结果将是"Dell Model A Laptop M2",而A 则来自23506A

你的逻辑是怎么写的,如果在一个Word的一行中发现超过2个数字,结果就删除整个单词。

上面例子的最终结果应该是"Dell Model Laptop M2"

因此完全删除23056A,因为我们连续找到超过2个数字(一个接一个)。

【问题讨论】:

  • 请按照How to Ask 中的建议添加您的搜索/研究工作的简要说明。

标签: javascript regex google-apps-script


【解决方案1】:

这应该可行:

item.replace(/[^\s]*\d{2,}[^\s]*/g, "");

您可能还希望摆脱相邻的空间:

item.replace(/[^\s]*\d{2,}[^\s]*\s?/g, "");

【讨论】:

    【解决方案2】:

    如果您不想删除所有其他可能包含 2 位数字的字符串,例如 1,50,您可以断言至少一个 char a-zA-Z

    \b(?=\w*[A-Za-z])\w*\d{2}\w*\b
    

    说明

    • \b一个字边界
    • (?=\w*[A-Za-z]) 正向前瞻,断言一个字符 a-zA-Z
    • \w*\d{2}\w* 匹配可选单词字符之间的 2 位数字
    • \b一个字边界

    Regex demo

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-03
      • 1970-01-01
      • 1970-01-01
      • 2012-10-02
      • 2019-12-24
      • 2016-12-06
      相关资源
      最近更新 更多