如何在javascript中将文本框中的字符串(如1/4)转换为数字

如何在javascript中将文本框中的字符串(如1/4)转换为数字,javascript,Javascript,如何在javascript中将文本框中的字符串(如1/4)转换为数字 <form> <input type='text' name='inputText' value='1/4'> </form> <script> var text=DOCUMENT.getElementsByName('inputText')[0].value; </script> var text=DOCUMENT.getElementsByName

如何在javascript中将文本框中的字符串(如1/4)转换为数字

<form>
  <input type='text' name='inputText' value='1/4'>
</form>
<script>
    var text=DOCUMENT.getElementsByName('inputText')[0].value;
</script>

var text=DOCUMENT.getElementsByName('inputText')[0]。值;
如何将文本转换为数字?

您可以使用
eval()
方法:

var text=document.getElementsByName('inputText')[0]。值;
document.getElementsByName('InputExt2')[0]。value=eval(text)

评估它:


var text=eval(document.getElementsByName('inputText')[0].value);
console.log(文本);//收益率:0.25

首先清理该值

var fnSanitize = str => !"1/s4".match( /[^-+*/\d+]/g )
上述函数将检查该值是否除
0-9
+-*\
之外还有其他内容您还可以添加更多运算符,如
()

现在计算表达式

var evalExpression = str => fnSanitize( str ) ? eval( str ) : ""; 
演示

var fnsanize=str=>!str.match(/[^-+*/\d+]/g)
var evalExpression=str=>fnsanize(str)?console.log(eval(str)):console.log(“坏表达式”);
document.querySelector(“#check”).addEventListener(“单击”,函数(){
evalExpression(document.querySelector(“#inputText”).value);
})

检查

不使用
eval
,您可以执行以下操作:

函数转换值(值){
让parts=value.split(“/”);
设红利=parseFloat(部分[0]);
设除数=parseFloat(第[1]部分);
如果(isNaN(被除数)| isNaN(除数)|除数===0){
返回“不能分割”;
}
回报股息/除数;
}
console.log(convertValue(“1/4”);//0.25
console.log(convertValue(“10/2”);//5.
console.log(convertValue(“-8/2”);//-4.
console.log(convertValue(“6/-2”);//-3.
console.log(convertValue(“0.5/0.25”);//2.
console.log(convertValue(“a/b”);//分不开

console.log(convertValue(“5/0”);//无法分割
您希望文本的值是多少?请不惜一切代价避免
eval
。这是一个危险的功能,可能会打开你的软件恶意代码。检查评估的替代方案。@LordAlpaca不太可能。用户可以打开控制台,在页面中运行他们想要的任何脚本,或者使用Greasemonkey或类似工具。任何能将代码注入eval部分的人都可能会注入eval@RobG:…直到有人欺骗你运行他们的代码。你可以实现一个调车场算法和RPN求值算法,允许用户输入一些任意的数字/表达式,你可以使用eval,你可以手动检查字符串内容以查看输入的数字的类型,有几种方法来代替regex,我只需要使用
isNaN
@dwardownvoter,请告诉我如何改进这个答案。