You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在替换字符串时保留大小写并移除末尾的s?

解决字符串末尾不区分大小写移除字母s的问题

嘿,这个场景我太熟悉了!直接用固定的replace("sticks", "stick")肯定不行,毕竟大小写不统一,得用更灵活的方式来处理,给你两个实用的方案:

方案一:使用不区分大小写的正则表达式(最简洁)

JavaScript的replace方法支持正则表达式,我们可以利用正则的不区分大小写标志(i)和末尾匹配($)来精准定位并移除末尾的s/S:

const originalStr = "STiCKs";
const processedStr = originalStr.replace(/s$/i, '');
console.log(processedStr); // 输出 "STiCK"

正则说明:

  • /s$/:匹配字符串末尾的小写s
  • 加上i标志后,变成/s$/i,就会匹配末尾的s或S,不管大小写
  • 替换成空字符串'',就相当于把末尾的s/S删掉了

用这个方法测试你给的所有示例都能完美适配:

  • Sticks.replace(/s$/i, '') → Stick
  • StICks.replace(/s$/i, '') → StICK
  • sticks.replace(/s$/i, '') → stick

方案二:手动检查最后一个字符(更直观)

如果你对正则不太熟悉,也可以手动判断最后一个字符是否是s/S,然后截断字符串:

function removeTrailingS(str) {
  // 取字符串最后一个字符
  const lastChar = str.charAt(str.length - 1);
  // 转成小写后判断是否为s
  if (lastChar.toLowerCase() === 's') {
    // 去掉最后一个字符返回
    return str.slice(0, -1);
  }
  // 不是的话返回原字符串
  return str;
}

// 测试示例
console.log(removeTrailingS("Sticks")); // Stick
console.log(removeTrailingS("STiCKs")); // STiCK

这个方法逻辑清晰,新手也能一眼看懂,适合需要更明确控制流程的场景。

内容的提问来源于stack exchange,提问作者Sport

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:29:45