嗯,我试过,但除非我在解释它的某个地方出错,否则它们似乎不起作用。我很欣赏快速的回复!
让我再试一次(更好的例子)
年龄可以输入为数字。现在性用户只会进入男性或女性。男性= 200,女性= 100
这些需要先转换才能用作值2
function add() {
所以我需要将它们转换成数字来运行公式。对不起,如果我没有解释清楚。
答案 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。