如何用空格分隔字符串中的字母与数字?附输入输出示例
问题描述
现有包含字母与数字(含小数)的输入字符串,需要将字母与数字用空格分隔开,示例如下:
输入:
let input_string='L10M111.05K268.68V 265.42';
期望输出:
let output_string='L 10 M 111.05 K 268.68 V 265.42';
解决方案
可以借助JavaScript的正则表达式结合replace()方法实现,核心是匹配字母与数字的相邻边界,在两者之间插入空格,同时保留原有的空格。
实现代码
const input_string = 'L10M111.05K268.68V 265.42'; // 分两次替换,覆盖字母在前/数字在前的两种相邻情况 const output_string = input_string .replace(/([A-Za-z])(\d)/g, '$1 $2') .replace(/(\d)([A-Za-z])/g, '$1 $2'); console.log(output_string); // 输出结果:"L 10 M 111.05 K 268.68 V 265.42"
正则逻辑说明
([A-Za-z])(\d):匹配字母紧跟数字的组合,用括号将字母和数字分别分组,替换时在两组间插入空格($1对应字母组,$2对应数字组)(\d)([A-Za-z]):匹配数字紧跟字母的组合,同样通过分组插入空格- 两次替换配合,能覆盖所有字母与数字相邻的场景,不会破坏原有的空格
适配调整
如果只需要处理大写字母,可将正则中的A-Za-z改为A-Z;若需兼容更多特殊数字格式(如负号开头的数字),可将\d调整为-?\d。
内容的提问来源于stack exchange,提问作者Theodore John
相关产品推荐
相关产品推荐

