从Javascript中的数字中删除前导零

时间:2011-07-13 08:59:28

标签: javascript html parseint

  

可能重复:
  Truncate leading zeros of a string in Javascript

从Javascript中的数字中删除前导零的最简单和跨浏览器兼容的方法是什么?

e.g。如果我有一个文本框值为014或065,它应该只返回14或65

3 个答案:

答案 0 :(得分:188)

尝试parseInt

parseInt("065", 10);

<小时/> 第二个参数是radix,根据文档,应始终指定。 MDN说,

  

基数

     

表示上述基数的整数   串。始终指定此参数以消除读者混淆   并保证可预测的行为。不同的实现   在未指定基数时产生不同的结果   .............
  .............
  如果radix未定义或0(或不存在),则JavaScript假定以下内容:

     
      
  • 如果输入字符串以“0x”或“0X”开头,则基数为16   (十六进制)并解析字符串的其余部分。
  •   
  • 如果输入字符串以“0”开头,则基数为八(八进制)或十进制(十进制)。   究竟选择哪个基数是依赖于实现的。 ECMAScript中   5指定使用10(十进制),但并非所有浏览器都支持   这个呢。因此,在使用parseInt 时始终指定基数。
  •   
  • 如果输入 string 以任何其他值开头,则基数为10   (十进制)。
  •   

例如,在某些实现中,parseInt("01803")将产生1。假设目标是获取1803,请调用基数为10的parseInt,以确保在基本十进制编号系统中完成解析。即:parseInt("01803", 10)将产生1803。请注意,对于非整数值,parseInt()将对数字进行舍入以作为整数返回。 paseInt("018.03", 10)会产生18

答案 1 :(得分:146)

正则表达式:

"014".replace(/^0+/, '')

答案 2 :(得分:20)

目前尚不清楚为什么要这样做。如果要获得正确的数值,可以使用unary + [docs]

value = +value;

如果您只想格式化文本,那么正则表达式会更好。这取决于你要处理的价值我会说。如果你只有整数,那么

input.value = +input.value;

也很好。当然它也适用于浮点值,但取决于你在点之后有多少位数,将它转换为数字并返回到字符串可以(至少用于显示)删除一些。