文本转换为数字

时间:2013-11-25 21:15:23

标签: javascript jquery numbers

嗯,我试过,但除非我在解释它的某个地方出错,否则它们似乎不起作用。我很欣赏快速的回复!

让我再试一次(更好的例子)

年龄可以输入为数字。现在性用户只会进入男性或女性。男性= 200,女性= 100

这些需要先转换才能用作值2

function add() {

所以我需要将它们转换成数字来运行公式。对不起,如果我没有解释清楚。

4 个答案:

答案 0 :(得分:2)

如果您想将"8"转换为8

var age = +$("#age").val();

这会将#age中的值转换为数字。你不需要jQuery来进行转换,但你可以使用jQuery的.val()<input>中取出值。


如果您想将"eight"转换为8

首先,将类型从number更改为text

如果您想将英文编号转换为数字,可以使用Object

var nums = {
    "one": 1,
    "two": 2,
    ...
};
var age = nums[$("#age").val().toLowerCase()];

但是,我们不建议这样做,因为您必须为您接受的每个号码创建一个条目。

更好的方法是分隔那些和数十个等等,但是你必须处理特殊情况,例如"eleven", "fifty"和无效输入:https://stackoverflow.com/a/12014376/283863


有趣的事实

有趣的是,在现代浏览器中它是possible to do the other way around(数字到Word):

var number = 10;
number.toLocaleString("zh-Hans-CN-u-nu-hanidec");  //it supports many languages,
                                                   //including Chinese.

答案 1 :(得分:0)

使用地图

var numbers = {
    'one'   : 1,
    'two'   : 2,
    'three' : 3,
    'four'  : 4,
    ... etc
}

var age = numbers[ $('#ageinletter').val() ];

带有文字输入

答案 2 :(得分:0)

使用Number()函数。

var age = Number($('#age').val());

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number

这仅适用于“1”=&gt; 1,不是“一个”=&gt; 1.我不确定是否有开箱即用的方式将文本转换为数字。

答案 3 :(得分:-1)

我认为没有开箱即用的方法。

你必须自己编写转换程序,虽然它并不是那么复杂,因为英文数字很常见。

首先,编写代码将“one”,“two”转换为“nineteen”到正确的整数:

if (word == 'one') 
   value = 1;
else if (word == 'two') 
   value = 2; 
...

一旦你拥有了它,你就可以处理拆分二十一,三十四等复合材料。如果检测到二十,你可以在该值上加20,如果检测到三十,则加30等。

如果你想要三位数字,它会变得有点复杂,因为你有几个例如164的表示,例如“一百六十四”,“一百六十四”等 可能有图书馆这样做,但我不知道javascript。