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

时间:2018-03-09 13:21:18

标签: javascript

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

slow_process1() running
self.dataset1: 13
26
slow_process2() running
self.dataset2: 21
42
self.dataset2: 21
63

如何将文字转换为数字?

4 个答案:

答案 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)

评估它:

&#13;
&#13;
<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;
&#13;
&#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>