在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\.)/, '')">