Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何仅将字符串数字转换为数字?_Javascript - Fatal编程技术网

Javascript 如何仅将字符串数字转换为数字?

Javascript 如何仅将字符串数字转换为数字?,javascript,Javascript,var txt='54839257+32648-34324'; var x; 用于(x/txt){ 如果(0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9){ var con=数量(x); }else{x.toString();} 文件编写(con); }如果要对数字和符号进行标记,但要转换整数值,则需要先拆分数值。正则表达式中符号周围的括号允许捕获分隔符 之后,您可以检查该值是否为数字 编辑:我将分隔符从[-+]更改为[^\d],因为这样更有意义 const inp

var txt='54839257+32648-34324';
var x;
用于(x/txt){
如果(0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9){
var con=数量(x);
}else{x.toString();}
文件编写(con);

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

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

编辑:我将分隔符从
[-+]
更改为
[^\d]
,因为这样更有意义

const input='54839257+32648-34324';
常量标记化=(str)=>{
返回str.split(/([^\d])/g.map(x=>!isNaN(x)?parseInt(x,10):x);
}
日志(标记化(输入))

.as控制台包装{top:0;max height:100%!important;}
对于这种情况,只需使用replace with正则表达式即可

const toNumber = (v) => {
     if (typeof v === "number") return v;
     if (typeof v !== "string") return;
     return  Number(v.replace(/[^0-9]/g, ""));
};

console.log(toNumber("OO7+54839257+32648-34324"));

如果(0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9)
将始终为
。实际上,你不是在检查这些数字中的任何一个,而是在执行。它只能是一个字符串或一组数字,你到底想要什么?你现在的问题对我来说毫无意义。
如果(x==“0”| | x==“1”| |……)
x.toString()
什么都不做,你需要对结果做些什么。另外,
x
已经是一个字符串,为什么您认为需要将其转换为字符串。您希望的输出与输入相同。重点是什么?