在Javascript中截断一个string的前导零

我有一个JavaScript的文本框。 当我在文本框中input'0000.00'时,我想知道如何将其转换为只有一个前导零,如'0.00'

更简化的解决scheme如下。 看一下这个!

 var resultString = document.getElementById("theTextBoxInQuestion") .value .replace(/^[0]+/g,""); 
 str.replace(/^0+(?!\.|$)/, '') '0000.00' --> '0.00' '0.00' --> '0.00' '00123.0' --> '123.0' '0' --> '0' 
 var value= document.getElementById("theTextBoxInQuestion").value; var number= parseFloat(value).toFixed(2); 

这听起来像你只是想删除前导零,除非只剩下一个(整数“0”或浮点数“0.xxx”,其中x可以是任何东西)。

这应该是第一次切好:

 while (s.charAt(0) == '0') { # Assume we remove all leading zeros if (s.length == 1) { break }; # But not final one. if (s.charAt(1) == '.') { break }; # Nor one followed by '.' s = s.substr(1, s.length-1) } 

你可以使用这个代码:

 <script language="JavaScript" type="text/javascript"> <!-- function trimNumber(s) { while (s.substr(0,1) == '0' && s.length>1) { s = s.substr(1,9999); } return s; } var s1 = '00123'; var s2 = '000assa'; var s3 = 'assa34300'; var s4 = 'ssa'; var s5 = '121212000'; alert(s1 + '=' + trimNumber(s1)); alert(s2 + '=' + trimNumber(s2)); alert(s3 + '=' + trimNumber(s3)); alert(s4 + '=' + trimNumber(s4)); alert(s5 + '=' + trimNumber(s5)); // end hiding contents --> </script> 

好的一个简单的解决 唯一的问题是当string是“0000.00”导致纯0。但除此之外,我认为是一个很酷的解决scheme。

 var i = "0000.12"; var integer = i*1; //here's is the trick... console.log(i); //0000.12 console.log(integer);//0.12 

对于某些情况下,我认为这可以工作…

尝试这个:

 <input type="text" onblur="this.value=this.value.replace(/^0+(?=\d\.)/, '')"> 
Interesting Posts