如何保留字符串最后一个换行符并移除其余所有换行符?
这里有两种简单的实现方式,满足你“保留最后一个换行、让手机号单独成行”的需求:
方法1:正则表达式替换
利用正向预查匹配除最后一个之外的所有换行,将它们替换为空格:
const originalStr = `Robert Robertson, 1234 NW Bobcat Lane, St. Robert, (555) 555-1234`; const processedStr = originalStr.replace(/(\r\n|\n|\r)(?=.*(\r\n|\n|\r))/gm, ' '); console.log(processedStr);
正则说明:(?=.*(\r\n|\n|\r))是正向预查,确保当前匹配的换行后面还存在至少一个换行,这样就只会替换前几个换行,最后一个换行被保留。
方法2:字符串分割+拼接
如果觉得正则不好理解,直接拆分字符串再重组更直观:
const originalStr = `Robert Robertson, 1234 NW Bobcat Lane, St. Robert, (555) 555-1234`; // 按所有换行符拆分出每一行 const lines = originalStr.split(/\r\n|\n|\r/); // 前几行用空格连接,再和最后一行用换行拼接 const processedStr = lines.slice(0, -1).join(' ') + '\n' + lines.at(-1); console.log(processedStr);
这种方式逻辑清晰,不需要记住复杂正则,适合处理结构固定的字符串。
两种方法运行后都能得到你想要的输出:
Robert Robertson, 1234 NW Bobcat Lane, St. Robert,
(555) 555-1234
内容的提问来源于stack exchange,提问作者user9138698
相关产品推荐
相关产品推荐

