que tienen un cuadro de texto en Javascript. Cuando entro '0000.00'
en el cuadro de texto, me gustaría saber cómo convertir a que sólo tener una ceros a la izquierda, como '0.00'
.truncar los ceros de una cadena en Javascript
Respuesta
Prueba esto:
<input type="text" onblur="this.value=this.value.replace(/^0+(?=\d\.)/, '')">
var value= document.getElementById("theTextBoxInQuestion").value;
var number= parseFloat(value).toFixed(2);
¿Esto causa problemas si el número de ceros a la izquierda del decimal es muy grande? – Eric
Eric tiene razón, solo funcionará si tiene un cero inicial. Más que eso y fallas –
Parece que lo que desea es eliminar los ceros a la izquierda, a menos que sólo hay una izquierda ("0" para un entero o "0.xxx" para un flotador, donde x puede ser cualquier cosa).
Esto debería ser bueno para un primer corte:
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)
}
Esta es una buena solución. Confiar en las funciones integradas no siempre es la mejor opción. Convertiría esto en una función auxiliar que toma un argumento de cadena y devuelve la cadena formateada. –
Funciona muy bien para mí. Solo aconsejaría agregar un fragmento de código para admitir números negativos (con "-" en el primer carácter). – Gaston
Puede utilizar este código:
<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>
str.replace(/^0+(?!\.|$)/, '')
'0000.00' --> '0.00'
'0.00' --> '0.00'
'00123.0' --> '123.0'
'0' --> '0'
Ok una solución simple. El único problema es cuando la cadena es "0000.00" el resultado es cero. Pero además de eso, creo que es una buena solución.
var i = "0000.12";
var integer = i*1; //here's is the trick...
console.log(i); //0000.12
console.log(integer);//0.12
Para algunos casos creo que esto puede funcionar ...
- 1. Python truncar una cadena larga
- 2. Relleno de ceros en una cadena
- 3. Recortar los ceros al comienzo de una cadena usando PHP
- 4. Cómo truncar una cadena UTF8 en PHP?
- 5. ¿Cómo truncar fácilmente una matriz con JavaScript?
- 6. ¿Cómo rellenar una cadena binaria con ceros?
- 7. dígitos con ceros en cadena de
- 8. ¿Cómo eliminar todos los ceros del comienzo de la cadena?
- 9. puede truncar una cadena multibyte en n caracteres
- 10. Truncar/redondear el número entero en JavaScript?
- 11. Javascript al agregar ceros al principio de una cadena (longitud máxima de 4 caracteres)
- 12. Decimal - truncate ceros finales
- 13. En Python, ¿cómo cuento los ceros finales en una cadena o entero?
- 14. ¿Hay alguna otra forma de truncar una cadena?
- 15. Método ideal para truncar una cadena con puntos suspensivos
- 16. R: Truncar cadena sin partiendo palabras
- 17. Truncar cadena a las primeras n palabras
- 18. ¿Cómo mezclo los caracteres en una cadena en JavaScript?
- 19. Mantener los ceros al final
- 20. NSString eliminando los ceros iniciales?
- 21. Truncar cadena en palabras enteras en .NET C#
- 22. Javascript: ¿cómo obtener los primeros 4 números en una cadena?
- 23. Cómo truncar los valores de una matriz numpy 2D
- 24. ¿Cómo puedo reformatear una cadena para excluir los ceros a la izquierda?
- 25. Truncar una cadena sin terminar en el medio de una palabra
- 26. Truncar cadena de consulta y devolver URL limpia C# ASP.net
- 27. Para sustituir todos los puntos de una cadena mediante JavaScript
- 28. cómo eliminar "," de una cadena en javascript
- 29. quiero truncar un texto o una línea con puntos suspensivos uso de JavaScript
- 30. Truncar texto en chino
necesidad de aclarar lo que es una "cadena" es. Si su "cadena" es un número decimal, entonces la respuesta será diferente que si su "cadena" es una cadena de texto. "00000,000" -> "0,000" sería una conversión decimal. "000TXT10001" -> "0TXT10001" requeriría una función de recorte. Por ejemplo, ¿qué esperas cuando la entrada es "0011.1100" -> "011.1100" o "11.11"? – ChronoFish