¿Hay alguna función en Javascript para formatear números y cadenas?
Estoy buscando una forma de separador de miles para cadenas o números ... (como String.Format en c #)
javascript
string
numbers
format
Señor perdido
fuente
fuente
How to print a number with commas as thousands separators in JavaScript
: stackoverflow.com/questions/2901102/…Respuestas:
Actualización (7 años después)
La referencia citada en la respuesta original a continuación era incorrecta. No es una función integrada para esto, que es exactamente lo que Kaiser sugiere a continuación:
toLocaleString
Entonces puedes hacer:
La función implementada a continuación también funciona, pero simplemente no es necesaria.
(Pensé que tal vez tendría suerte y descubriría que era necesario en 2010, pero no. Según esta referencia más confiable , toLocaleString ha sido parte del estándar desde ECMAScript 3rd Edition [1999], lo que creo que significa que habría sido compatible desde IE 5.5.)
Respuesta original
Según esta referencia, no hay una función incorporada para agregar comas a un número. Pero esa página incluye un ejemplo de cómo codificarlo usted mismo:
Editar: para ir al revés (convertir la cadena con comas en un número), puede hacer algo como esto:
fuente
(1234567).toLocaleString().replace(/,/g," ",)
para espacios entre milesSi se trata de localizar separadores de miles, delimitadores y separadores decimales, elija lo siguiente:
Hay varias opciones que puede usar (e incluso configuraciones regionales con alternativas):
Detalles en la página de información de MDN .
Editar: Commentor @I like Serena agrega lo siguiente:
fuente
Number(yourNumberOrString).toLocaleString()
value.toLocaleString('en')
. También funciona para coma flotante.Se puede utilizar una expresión regular, especialmente útil para tratar con números grandes almacenados como cadenas.
»Explicación detallada de expresiones regulares (regex101.com)
Al intentar manejar esto con una sola expresión regular (sin devolución de llamada), mi capacidad actual me falla por falta de una búsqueda negativa en Javascript ... sin embargo, aquí hay otra alternativa concisa que funciona en la mayoría de los casos generales: teniendo en cuenta cualquier punto decimal ignorando coincidencias donde el índice de la coincidencia aparece después del índice de un período.
»Explicación detallada de expresiones regulares (regex101.com)
fuente
Hay un buen complemento de número de jQuery: https://github.com/teamdf/jquery-number
Le permite cambiar cualquier número en el formato que desee, con opciones para dígitos decimales y caracteres separadores para decimal y mil:
Puede usarlo directamente dentro de los campos de entrada, lo cual es mejor, usando las mismas opciones que las anteriores:
O puede aplicar a un conjunto completo de elementos DOM usando el selector:
fuente
Yo uso esto:
fuente: enlace
fuente
'123452343267.0505'.replace(/\B(?=(\d{3})+(?!\d))/g, ","); "123,452,343,267.0,505"
- observe la última coma después del punto decimal.fuente
para la referencia puede consultar aquí https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString
fuente
Puede utilizar javascript. a continuación se muestra el código, solo será
accept
numérico y unodot
DEMO JSFIDDLE
fuente
PHP.js tiene una función para hacer esto llamada number_format . Si está familiarizado con PHP, funciona exactamente de la misma manera .
fuente
fuente
Todo lo que necesitas hacer es realmente esto :
fuente
toLocaleString()
que no agrega las comas o carece de otras características en el estándar. Es fácil verificar latoLocaleString
presencia pero no verificar su cumplimiento.Combinación de soluciones para reaccionar
fuente
Puede utilizar ngx-format-field. Es una directiva para formatear el valor de entrada que aparecerá en la vista. No manipulará el valor de entrada que se guardará en el backend. ¡Ver enlace aquí !
Ejemplo:
Para ver la demostración: ¡ aquí !
fuente
Puede utilizar la siguiente función:
fuente
No me gustó ninguna de las respuestas aquí, así que creé una función que funcionó para mí. Solo quiero compartir en caso de que alguien más lo encuentre útil.
fuente