如何提取字符串中由空格或点分隔的单词首字母并保留对应点符号
问题解决代码及说明
问题原因
你原有的实现用split(/[\s.]+/)切分字符串时,会把所有.和空格都作为分隔符直接丢弃,所以后续拼接时自然无法保留.符号。
修复方案
改用正则直接匹配所有需要保留的字符:符合规则的首字母 + 原字符串中的.,直接拼接匹配结果即可。
实现代码
const sentence = "Hello World I'm a web.dev from.japan.com cool"; // 正则匹配规则:要么是前面为开头/空格/点的字母,要么是点本身 const result = (sentence.match(/(?<=^|\s|\.)[a-z]|\./gi) || []) .join('') .toUpperCase(); console.log(result); // 输出 HWIAW.DF.J.CC
测试验证
- 输入
Hello World This is awesome,输出HWTIA,符合预期。 - 输入
Hello World I'm a web.dev from.japan.com cool,输出HWIAW.DF.J.CC,符合预期。
内容的提问来源于stack exchange,提问作者Dwix
相关产品推荐
相关产品推荐

