jquery 如果包含特定单词和大于1的数字,则更改所有div内容

fnatzsnv  于 2023-01-25  发布在  jQuery
关注(0)|答案(1)|浏览(92)

晚上好!
我有很多带有类". goods__variants"和不同文本的div。所以如果我有"1个颜色",它是正确的,但如果我有15个,我看到"15个颜色",所以不正确。我需要改变所有包含内部数字超过1的div,并将文本"颜色"替换为"颜色"。
我会尝试这样做,但我不想写每一行的值为每一位。如何才能做到这一点更动态的所有数字?谢谢!
代码:

$('.goods__variants').each(function() {
   var text = $(this).text();
   text.indexOf("4 Farbe") >= 0 ? text = text.replace('4 Color', '4 Colors') : null;
   $(this).text(text);
});
tv6aics1

tv6aics11#

检查是否需要复数化,只需要检查独立的数字1是否存在,如果不存在,则将color更改为colors即可。

$('.goods__variants').each(function() {
  const original = $(this).text();
  if (!/\b1\b/.test(original)) {
    $(this).text(original.replace(/\bcolor\b/, 'colors'));
  } // add an else here if you want to change colors back to color
});

\b1\b用字边界围绕1,使得仅匹配独立的数字1
\bcolor\b用字边界围绕color,使得仅匹配独立字color(而不是例如colors中的color)。

相关问题