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
,因为我们连续(连续)找到了两位以上的数字。
答案 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
单词边界