You need to enable JavaScript to run this app. JavaScript如何在数学运算符前后加空格分隔字符串且不拆分数字
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript如何在数学运算符前后加空格分隔字符串且不拆分数字

实现方案

直接用正则匹配四则运算符做全局替换即可,不会拆分数字:

基础版(无负数场景,匹配你给出的示例需求)

const originStr = "21+2-32*2";
const formattedStr = originStr.replace(/([+\-*/])/g, ' $1 ');
console.log(formattedStr); // 输出结果:21 + 2 - 32 * 2

正则说明:/([+\-*/])/g 会全局匹配所有+、-、*、/运算符,捕获后替换为「空格+运算符+空格」,全程不会修改数字字符,完全避免拆分数字的问题。

进阶版(兼容负数场景)

如果需要处理带负号的表达式(比如"-21+3*-4"),可以优化正则避开负号的误匹配:

const originStr = "-21+3*-4";
// 支持ES2018+零宽后行断言的环境可用
const formattedStr = originStr.replace(/(?<!^|\d)([+\-*/])/g, ' $1 ');
// 兼容旧环境的写法
// const formattedStr = originStr.replace(/(^|[^\d])([+\-*/])/g, '$1 $2 ');
console.log(formattedStr); // 输出结果:-21 + 3 * -4

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 03:45:03