You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中按+、-符号分割字符串返回数组长度恒为1的问题求解

问题原因
  • 取值时机错误:获取输入框值的逻辑写在全局作用域,页面加载时就执行,此时用户还未输入内容,后续点击按钮调用equals函数时读取的始终是页面初始化的旧值,不是用户输入的最新内容。
  • 正则规则错误:你写的/\+\-/正则匹配的是+后紧跟-的连续字符串,并非匹配+、-中的任意一个字符,只要输入内容里没有+-连续出现的情况,split就不会拆分,返回的数组长度始终为1。
修正方案

修正后的JavaScript代码如下:

function equals(){
    // 每次触发函数时实时读取输入框最新值
    var equation = document.getElementById('mainbox').value
    // 使用字符集正则匹配+或-任意一个字符进行分割
    var equationSplit = equation.split(/[+-]/);
    console.log(equationSplit)
}

如果后续需要做计算器运算,要保留+、-符号用于判断运算类型,可以把正则改为带捕获组的形式,分割后符号也会保留在数组中:

// 分割后格式示例:["123", "+", "456", "-", "78"]
var equationSplit = equation.split(/([+-])/);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 08:45:07