Javascript:转换字符串中的数字

时间:2017-11-20 02:52:00

标签: javascript

我正在处理一个简单的会话表单,我需要输入维度ex。 12x24x36英寸至304.8 x 609.6 x 914.4 mm。

我的问题是我不知道如何计算单独转换这些数字。

我设法删除 x 但所有数字合并。

谢谢,我希望你理解我。

这是我的示例代码

HTML

<h4>Dimensions</h4>
<label>inches <input id="number1"></label>
<label>mm <input id="number2"></label>
<button type="button" onclick="myFunction()">convert</button>

JS

function myFunction() {
var inches = document.getElementById("number1").value;

  var removex = inches.replace(/x/g,"");

  var input = parseInt(removex);

document.getElementById("number2").value = input
}

CODEPEN

https://codepen.io/anon/pen/yPpmej

3 个答案:

答案 0 :(得分:3)

如果你有一个字符串:

 var str = '304.8 x 609.6 x 914.4 mm'

您可以使用split()parseFloat()来获取数字数组:

&#13;
&#13;
var str = '304.8 x 609.6 x 914.4 mm'
var numbers = str.split('x').map(parseFloat)
console.log(numbers)
&#13;
&#13;
&#13;

您只需要了解输入格式,以便根据其他变化进行调整。

parseFloat()将忽略数字后的任何非数字字符,因此它适用于剥离单位。

答案 1 :(得分:1)

如果您收到&#34; 12x24x36&#34;作为输入(字符串)然后为完整的所需结果更新您的功能如下: -

&#13;
&#13;
function myFunction() {
  var inches = document.getElementById("number1").value;
  var inchesArr = inches.split("x");
  var mmArr = inchesArr.map(function(i) {
    return parseFloat(i) * 25.4;
  });
  var mmString = mmArr.join("x");

  document.getElementById("number2").value = mmString;
}
&#13;
&#13;
&#13;

答案 2 :(得分:1)

<强>说明

您可以通过12x24x36将输入示例str.split('x')转换为数组,然后从英寸到毫米(x英寸* 25.4)进行数学转换,并将它们推回到一个毫米值的新数组中。然后,您可以使用x str.join('x')重新加入这些值,并将它们放回到您的文档中。这就是它的样子。

<强> SCRIPT

function myFunction() {
  var inches = document.getElementById("number1").value.split('x');
  var millimeters = [];
  for (var i = 0; i < inches.length; i++) millimeters.push(parseInt(inches[i]*25.4));
  document.getElementById("number2").value = millimeters.join('x');
}

<强> CODEPEN

https://codepen.io/anon/pen/KyZOYb