Tengo una cadena, 12345.00
y me gustaría que volviera 12345.0
.
Lo he mirado trim
, pero parece que solo está recortando espacios en blanco y slice
que no veo cómo funcionaría esto. ¿Alguna sugerencia?
javascript
slice
trim
Phill Pafford
fuente
fuente
Math.round('0.5') === 1
;)Respuestas:
Puedes usar la subcadena función de :
Esta es la respuesta aceptada, pero según las conversaciones a continuación, la sintaxis de corte es mucho más clara:
fuente
str = str.substring(0, str.length -1);
slice
&substring
son casi todos iguales; excepto queslice()
acepta un índice negativo, relativo al final de la cadena, pero no elsubstring
, arroja unout-of-bound
errorsubstring
es un 11% más rápido queslice
. jsperf.com/js-slice-vs-substring-test¡Puedes usar rebanada ! Solo tiene que asegurarse de saber cómo usarlo. Los números positivos son relativos al principio, los números negativos son relativos al final.
fuente
substring
usarse el método también en cadenas dinámicas? ¿Usando str.length para obtener dinámicamente la longitud?Puede usar el método de subcadena de los objetos de cadena de JavaScript:
Elimina incondicionalmente los últimos cuatro caracteres de la cadena
s
.Sin embargo, si desea eliminar condicionalmente los últimos cuatro caracteres, solo si son exactamente
_bar
:fuente
slice
Es mejor aquí.s.slice(0, -4)
El método más fácil es usar el
slice
método de la cadena, que permite posiciones negativas (correspondientes a las compensaciones desde el final de la cadena):Si necesita algo más general para eliminar todo después (e incluir) el último guión bajo, puede hacer lo siguiente (siempre que
s
se garantice que contenga al menos un guión bajo):fuente
Para un número como su ejemplo, recomendaría hacer esto de nuevo
substring
:Sin embargo, tenga en cuenta que esto realmente redondeará el número, lo que me imagino que es deseado, pero tal vez no:
fuente
Usando la función de división de JavaScript:
Esto podría usarse para eliminar '_bar' al final de una cadena, de cualquier longitud.
fuente
Una expresión regular es lo que estás buscando:
fuente
Prueba esto:
fuente
Qué tal si:
fuente
Utilice expresiones regulares:
fuente
fuente
fuente
Aquí hay una alternativa que no creo haber visto en las otras respuestas, solo por diversión.
No es tan legible o simple como el corte o la subcadena, pero le permite jugar con la cadena usando algunos buenos métodos de matriz, por lo que vale la pena saberlo.
fuente
fuente
El camino más corto:
fuente
Si desea hacer un redondeo genérico de carrozas, en lugar de simplemente recortar el último carácter:
EDITAR: Parece que existe una función integrada para esto, como señala Paolo. Esa solución es obviamente mucho más limpia que la mía. Use parseFloat seguido de toFixed
fuente
fuente
https://jsfiddle.net/invos/w3zeqv6v/
/programming/34817546/javascript-how-to-delete-last-two-characters-in-a-string
"11.01 °C".slice(0,-2).trim()
fuente
Actuación
Hoy 2020.05.13 realizo pruebas de las soluciones elegidas en Chrome v81.0, Safari v13.1 y Firefox v76.0 en MacOs High Sierra v10.13.6.
Conclusiones
slice(0,-1)
(D) es rápida o solución más rápida para cadenas cortas y largas y se recomienda como solución multi-navegador rápidosubstring
(C) ysubstr
(E) son rápidasDetalles
Realizo dos pruebas para las soluciones A , B , C , D , E ( ext ), F , G (my)
Las soluciones se presentan en el siguiente fragmento
Mostrar fragmento de código
Aquí hay resultados de ejemplo para Chrome para cadena corta
fuente
Tenga en cuenta que
String.prototype.{ split, slice, substr, substring }
funciona con cadenas codificadas UTF-16Ninguna de las respuestas anteriores es compatible con Unicode. Las cadenas están codificadas como UTF-16 en la mayoría de los motores JavaScript modernos, pero los puntos de código Unicode más altos requieren pares sustitutos , por lo que los métodos de cadena más antiguos y existentes operan en unidades de código UTF-16, no en puntos de código Unicode.
Además, las respuestas de RegExp no coinciden con los saltos de línea al final en su forma actual:
Use el iterador de cadena para iterar caracteres
El código compatible con Unicode utiliza el iterador de la cadena; Ver
Array.from
y...
difundir .string[Symbol.iterator]
se puede usar (por ejemplo, en lugar destring
) también.Consulte también Cómo dividir cadenas Unicode en caracteres en JavaScript .
Ejemplos:
Use las banderas
s
yu
en unRegExp
El indicador
dotAll
os
hace.
coincidir los caracteres de salto de línea, el indicadorunicode
ou
habilita ciertas funciones relacionadas con Unicode.Ejemplos:
Tenga en cuenta que algunos grafemas consisten en más de un punto de código, por ejemplo,
🏳️🌈
que consiste en la secuencia🏳
(U + 1F3F3),VS16
(U + FE0F) ,ZWJ
(U + 200D) ,🌈
(U + 1F308). Aquí, inclusoArray.from
dividirá esto en cuatro "personajes". Es posible que coincidan con la propuesta de propiedades de secuencia de la propiedad Unicode .fuente
En los casos en que desee eliminar algo que esté cerca del final de una cadena (en el caso de cadenas de tamaño variable), puede combinar slice () y substr ().
Tenía una cadena con marcado, construida dinámicamente, con una lista de etiquetas de anclaje separadas por comas. La cadena era algo así como:
Para eliminar la última coma, hice lo siguiente:
fuente
Prueba esto:
También puede probar el ejemplo de trabajo en vivo en http://jsfiddle.net/informativejavascript/F7WTn/87/ .
fuente
Lo siento por mi grafomanía, pero la publicación fue etiquetada 'jquery' anteriormente. Por lo tanto, no puede usar slice () dentro de jQuery porque slice () es un método jQuery para operaciones con elementos DOM, no subcadenas ... En otras palabras, la respuesta @Jon Erickson sugiere una solución realmente perfecta.
Sin embargo, su método funcionará con la función jQuery, dentro de Javascript simple. Es necesario decir, debido a la última discusión en los comentarios, que jQuery es una extensión de JS con mucha más frecuencia renovable que su ECMAScript más conocido.
Aquí también existen dos métodos:
como el nuestro:
string.substring(from,to)
como plus si 'to' index nulled devuelve el resto de la cadena. entonces:string.substring(from)
positivo o negativo ...y algunos otros - substr () - que proporcionan un rango de subcadena y 'longitud' solo pueden ser positivos:
string.substr(start,length)
También algunos mantenedores sugieren que el último método
string.substr(start,length)
no funciona o funciona con error para MSIE.fuente
String.prototype.slice
es un método nativoslice()
método jQuery para la manipulación DOM: jQuery API: .slice () . Y SEGURO, eso PUEDE FIGURARSE como una herencia polimórfica de JS Array.slice (), pero es dos métodos diferentes, y creo que necesita distinguirlo. Entonces es solo una aproximación a este conocimiento..slice
a una variable que es una cadena, hará exactamente lo que el OP quería. No importa si está "dentro de jQuery" y no hay forma de que pueda "interferir" de ninguna manera a menos que sobrescribaString.prototype
con jQuery, lo que estoy seguro evitará que CUALQUIER código de JavaScript funcione. Su respuesta solo dice que otra respuesta no es buena y el argumento que proporciona es incorrecto..data
manipulación sofisticada y terminas con esta "cadena"), que si la invocasteslice
, No haría lo que quisieras. Dicho esto, esta no es realmente una respuesta útil.Use la subcadena para obtener todo a la izquierda de _bar. Pero primero tienes que obtener el instr de _bar en la cadena:
3 es ese comienzo y 7 es la longitud.
fuente