2011-11-21 63 views
0

我有一个文本框,用户输入一个任务的总权重。现在,如果用户输入0004,那么它将显示4这是很好,如果用户输入002,然后显示2,但如果用户输入0000,则它将显示0000.我希望它显示0,但我不知道如何去做。如果我做textbox.value> = 0,那么如果我输入0000,那么它将删除所有0,文本框留空。它是如何编码的,以便在用户输入零时除去一个0?如果我只输入零,那么文本框是空的

编码低于:

if (textbox.value > 0) { 
      var textboxstring = textbox.value.replace(/^0*/, ''); 

回答

2
var textboxstring = parseInt(textbox.value,10) 

会做的伎俩。你需要额外的参数,使字符串被解释为十进制数,而不是八进制

+0

@mu ... ..纠正什么 –

+0

是基数的说法? – BruceyBandit

+0

radix参数告诉parseInt字符串被解释为什么基数。base 10,hexadecimal等等。10在10中是10,但在十六进制中是“A”,八进制是“12” –

2

在我看来,:

textbox.value = Number(textbox.value); 

应该做的工作(或任何的许多方法来转换字符串到数字)。

+0

我改成了Number(textbox.value)甚至比我所做的替换代码更好,但它并不帮助将00000转换为0. – BruceyBandit

+0

我将parapura评为最佳答案,因为他帮助我完成了评论,但您的回答非常有帮助。谢谢你:) – BruceyBandit

+0

使用:'',模糊时输入“00000”变为“0”。无论如何,希望有所帮助。 – RobG

0

是否所有的值都是整数?

如果是这样,请考虑使用parseInt()。如果您可能需要小数部分的答案,请改为使用parseFloat()

0

试试这样说:

if (textbox.value > 0) { 
    var textboxstring = textbox.value.replace(/^0*/, ''); 
else 
    var textboxstring = textbox.value.replace(/^[0]+/g,'0'); 
相关问题