从Javascript中删除前导零个数字
可能重复:
在Javascript中截断一个string的前导零
什么是最简单的和跨浏览器兼容的方式来删除在JavaScript中的前导零号码?
例如,如果我有一个文本框值为014或065,它应该只返回14或65
尝试parseInt 。
parseInt("065", 10);
第二个参数是基数 ,根据文档,它应该总是指定。 MDN说,
基数
表示上述string的基数的整数。 始终指定此参数以消除读者的困惑并保证可预测的行为。 未指定基数时,不同的实现会产生不同的结果。
………….
………….
如果基数未定义或0(或不存在),JavaScript假定如下:
- 如果inputstring以“0x”或“0X”开头,则基数为16(hex),并parsingstring的其余部分。
- 如果inputstring以“0”开始,则基数为八(八进制)或十(十进制)。 究竟select哪个基数是依赖于实现的。 ECMAScript 5指定使用10(十进制),但并非所有的浏览器都支持这一点。 出于这个原因, 当使用parseInt时总是指定一个基数 。
- 如果inputstring以任何其他值开头,则基数为10(十进制)。
例如,在一些实现中, parseInt("01803")
将产生1
。 假设目标是获得1803
,请以10为基数调用parseInt,以确保parsing在基本的十进制编号系统中完成。 即: parseInt("01803", 10)
将产生1803
。 请注意,对于非整数值,parseInt()将四舍五入数字作为整数返回。 paseInt("018.03", 10)
将产生18
。
正则expression式:
"014".replace(/^0+/, '')
目前还不清楚你为什么要这样做。 如果你想得到正确的数值,你可以使用一元+
[docs] :
value = +value;
如果你只是想格式化文本,那么正则expression式可能会更好。 这取决于你正在处理的价值观,我会说。 如果你只有整数,那么
input.value = +input.value;
也很好。 当然,它也适用于浮点值,但取决于点之后有多less数字,将其转换为数字并返回到string可以(至less用于显示)删除一些数字。