如何从字符串中删除数字。根据长度并删除其他字母

时间:2020-09-18 01:06:14

标签: javascript regex google-apps-script

const item = "Dell Model 23506A Laptop M2";
const item2 = item.replace(/\d{2,}/g, "");

以上代码将删除“连续找到2位以上的任何单词,但只会删除单词中的数字。

例如,以上示例的最终结果将是"Dell Model A Laptop M2",而A中的23506A将保留。

如何编写逻辑,即在一个单词的一行中找到两个以上的数字,结果将整个单词删除。

示例上述结果的最终结果应为"Dell Model Laptop M2"

因此完全删除23056A,因为我们连续(连续)找到了两位以上的数字。

2 个答案:

答案 0 :(得分:4)

这应该有效:

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

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

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

答案 1 :(得分:1)

如果您不想删除所有可能包含两位数字的其他字符串,例如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

相关问题