如何使用正则删除字符串中逗号后除首字母外的其余内容?
你原来的代码拆分后只取了逗号前的部分,所以会把逗号和后面的内容全部删除,可参考以下两种实现方案:
方案1:拆分后拼接
let str = "Smith,John"; // 移除所有空白字符 str = str.replace(/\s/g, ""); // 拆分出姓氏、名字两个部分 const [lastName, firstName] = str.split(','); // 拼接姓氏、逗号、名字首字母 str = `${lastName},${firstName[0]}`;
如果需要兼容名字为空的极端场景,可以调整拼接逻辑为:
str = `${lastName},${firstName?.[0] || ''}`;
方案2:正则直接替换
用正则匹配逗号后首字母之外的所有内容直接删除,一行即可完成:
let str = "Smith,John"; str = str.replace(/\s/g, "").replace(/(,.)(.*)/, "$1");
正则逻辑说明:(,.)捕获逗号加后面第一个字符作为第一组,(.*)匹配首字母之后的所有内容,替换为$1即仅保留捕获到的逗号加首字母部分。
两种方案运行后的输出结果均为Smith,J。
内容的提问来源于stack exchange,提问作者CodeVenture
相关产品推荐
相关产品推荐

