首页 > 解决方案 > 如何仅将字符串数字转换为数字?

问题描述

var txt = '54839257+32648-34324';
var x;

for (x of txt) {
  if (0||1||2||3||4||5||6||7||8||9) {
    var con = Number(x);
  } else { x.toString();}
  
  document.write(con);
  
}

在上面的代码中,我想将字符串中的数字转换为数字,而不是加号和减号。我想让他们在一起以获得结果。像这样:54839257+32648-34324。但是我的代码给出了这个:54839257NaN32648NaN34324.

标签: javascript

解决方案


如果要标记数字和符号,但要转换整数值,则需要先拆分值。正则表达式内的符号周围的括号允许您捕获分隔符。

之后,您可以检查该值是否为数字。

编辑:我将分隔符从更改[-+][^\d]更有意义。

const input = '54839257+32648-34324';

const tokenize = (str) => {
  return str.split(/([^\d])/g).map(x => !isNaN(x) ? parseInt(x, 10) : x);
}

console.log(tokenize(input));
.as-console-wrapper { top: 0; max-height: 100% !important; }


推荐阅读