¿Cuál es una forma sencilla de eliminar los dos últimos caracteres de una cadena?
javascript
string
variables
erase
Tomkay
fuente
fuente
parseInt('245px', 10)
parseInt('09')
!utilizar
var size = parseInt('245px', 10);
donde 10 es la base que define el
parseInt
análisis a un valor decimaluse parseInt pero no use parseInt sin una base
La función parseInt () analiza una cadena y devuelve un número entero.
La firma es
parseInt(string, radix)
El segundo argumento obliga a parseInt a utilizar un sistema de numeración de base diez.
¿por qué? si $ (this) .attr ('num') sería "08", parsInt sin una base se convertiría en 0
fuente
Para convertir un valor de píxel sin el "px" al final. use parseFloat.
parseFloat('245px'); // returns 245
Nota: Si usa parseInt, el valor será correcto si el valor es un número entero. Si el valor es decimal como 245,50 px, entonces el valor se redondeará a 245.
fuente
parseFloat()
no toma radix comoparseInt()
(Ver developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… & stackoverflow.com/ preguntas / 8555649 /… )Esto hace exactamente lo que pide: elimine los dos últimos caracteres de una cadena:
s.substr(0, s.length-2);
fuente
Sorprendentemente, el método de la subcadena
s.substr(0, s.length-2);
es en realidad bastante más rápido para eliminar elpx
(sí, no tiene un aspecto tan limpio, y si hay un espacio, permanecerá -"250px" -> "250"
vs"250 px" -> "250 "
).Si desea tener en cuenta los espacios (que probablemente debería hacerlo), el uso de la
.trim()
función en realidad ralentizará lasubstr
prueba lo suficiente como para que elparseInt
método sea realmente superior.Un beneficio adicional de usar
parseInt(s, 10)
es que también obtiene una conversión de tipo y puede comenzar a aplicarla inmediatamente a funciones matemáticas.Entonces, al final, realmente depende de lo que planees hacer con el resultado.
substr
método sin un recorte probablemente sea su mejor opción.s.substr(0, s.length-2) == 0
, entonces usar elsubstr
método sería lo mejor, ya que"250 " == 250
(incluso con el espacio) resultará comotrue
parseInt
ruta.http://jsperf.com/remove-px-from-coord
Las pruebas en jspref dan cuenta de un espacio. También probé una función
s.split('px')[0]
ys.replace(/ *px/g, '')
, ambas resultaron ser más lentas.No dude en agregar casos de prueba adicionales.
fuente
Aunque parseInt () es una buena opción, es bueno tener muchas otras soluciones
var pixels = '245px'; Number(pixels.replace('px', ''));
fuente
Consulte http://www.w3schools.com/jsref/jsref_substr.asp En su caso sería algo como
string.substr(0, string.length - 2)
fuente
Yo prefiero:
"245px".replace(/px/,'')*1
ya que no rodea la entrada.
Además,
*1
es para convertirlo en int.fuente
substr()
ahora es una función heredada ; usesubstring()
en su lugar: (la sintaxis es la misma en este caso )str.substring(0, str.length-2);
O use
slice()
:str.slice(0, -2);
slice()
parece mucho más limpio, en mi opinión. Los valores negativos cuentan desde el final.fuente
rem
valores.