47

私はJavascriptでテキストボックスを持っています。'0000.00'テキストボックスに入力すると、それを'0.00'.

4

8 に答える 8

54

より単純化されたソリューションは次のとおりです。これをチェックしてください!

var resultString = document.getElementById("theTextBoxInQuestion")
                           .value
                           .replace(/^[0]+/g,"");
于 2009-08-12T09:45:21.993 に答える
35
str.replace(/^0+(?!\.|$)/, '')

  '0000.00' --> '0.00'   
     '0.00' --> '0.00'   
  '00123.0' --> '123.0'   
        '0' --> '0'  
于 2012-12-24T20:17:38.657 に答える
14
var value= document.getElementById("theTextBoxInQuestion").value;
var number= parseFloat(value).toFixed(2);
于 2009-02-27T11:15:49.423 に答える
9

It sounds like you just want to remove leading zeros unless there's only one left ("0" for an integer or "0.xxx" for a float, where x can be anything).

This should be good for a first cut:

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)
}
于 2009-02-27T11:17:50.760 に答える
6

簡単な解決策です。唯一の問題は、文字列が「0000.00」の場合にプレーンな 0 になることです。

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

場合によっては、これでうまくいくと思います...

于 2013-06-05T16:08:45.967 に答える
5

次のコードを使用できます。

<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>
于 2011-11-26T05:23:00.673 に答える
2

これを試して:

<input type="text" onblur="this.value=this.value.replace(/^0+(?=\d\.)/, '')">
于 2009-02-27T11:15:30.937 に答える