如何将文本框中的1/4字符串转换为javascript中的数字。
slow_process1() running
self.dataset1: 13
26
slow_process2() running
self.dataset2: 21
42
self.dataset2: 21
63
如何将文字转换为数字?
答案 0 :(得分:1)
不使用eval
,您可以这样做:
function convertValue(value) {
let parts = value.split("/");
let dividend = parseFloat(parts[0]);
let divisor = parseFloat(parts[1]);
if (isNaN(dividend) || isNaN(divisor) || divisor === 0) {
return "Cannot divide";
}
return dividend / divisor;
}
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")); // Cannot divide
console.log(convertValue("5/0")); // Cannot divide

答案 1 :(得分:0)
您可以使用eval()
方法:
var text = document.getElementsByName('inputText')[0].value;
document.getElementsByName('inputText2')[0].value = eval(text);
<form>
<input type='text' name='inputText' value='1/4'>
<input type='text' name='inputText2'>
</form>
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval
答案 2 :(得分:0)
评估它:
<form>
<input type='text' name='inputText' value='1/4'>
</form>
<script>
var text = eval(document.getElementsByName('inputText')[0].value);
console.log(text); // returns: 0.25
</script>
&#13;
答案 3 :(得分:0)
首先清理值
var fnSanitize = str => !"1/s4".match( /[^-+*/\d+]/g )
上面的函数将检查该值是否还有0-9
和+-*\
以外的任何其他值。 您还可以添加更多运算符,例如()
。
现在评估表达式
var evalExpression = str => fnSanitize( str ) ? eval( str ) : "";
<强>演示强>
var fnSanitize = str => !str.match(/[^-+*/\d+]/g)
var evalExpression = str => fnSanitize(str) ? console.log(eval(str)) : console.log("Bad expression");
document.querySelector("#check").addEventListener("click", function() {
evalExpression(document.querySelector("#inputText").value);
})
<form>
<input type='text' id='inputText' value='1/4'>
<button id="check">Check</button>
</form>
<script>
</script>
或通过Function
构造函数
var evalExpression = str => fnSanitize( str ) ? new Function( "return " str ) : "";
<强>演示强>
var fnSanitize = str => !str.match(/[^-+*/\d+]/g)
var evalExpression = str => fnSanitize( str ) ? console.log(new Function( "return " + str )()) : console.log("Bad expression");
document.querySelector("#check").addEventListener("click", function() {
evalExpression(document.querySelector("#inputText").value);
});
<form>
<input type='text' id='inputText' value='1/4'>
<button id="check">Check</button>
</form>
<script>
</script>