part - replace all character javascript
Cómo eliminar "px" de 245px (6)
Esto hace exactamente lo que preguntas: eliminar los dos últimos caracteres de una cadena:
s.substr(0, s.length-2);
¿Cuál es una forma simple de eliminar los dos últimos caracteres de una cadena?
Para convertir un valor de píxel sin el "px" al final. usa parseFloat.
parseFloat(''245px'', 10);//returns 245
Nota: Si usa parseInt, el vaue será correcto si el valor es un entero. Si el valor es uno decimal como 245.50px, entonces el valor se redondeará a 245.
Sorprendentemente, el método de subcadena s.substr(0, s.length-2);
es en realidad un poco más rápido para eliminar el px
(sí, no es tan limpio, y si hay espacio, permanecerá - "250px" -> "250"
frente a "250 px" -> "250 "
) .
Si desea contabilizar espacios (que probablemente debería), usar la función .trim()
ralentizará la prueba de substr
suficiente como para que el método parseInt
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 las funciones matemáticas.
Entonces, al final, realmente depende de lo que planeas hacer con el resultado.
- Si solo se muestra, entonces usar el método
substr
sin un ajuste probablemente sea la mejor opción. - Si solo está tratando de ver si el valor sin px es igual a otro valor
s.substr(0, s.length-2) == 0
, entonces usar el métodosubstr
sería lo mejor, como"250 " == 250
(incluso con el espacio) dará como resultadotrue
- Si desea considerar la posibilidad de un espacio, agregarlo a otro valor o calcular algo con él, entonces es posible que desee considerar ir con la ruta
parseInt
.
http://jsperf.com/remove-px-from-coord
Las pruebas en jspref representan un espacio. También probé una función s.split(''px'')[0]
y s.replace(/ *px/g, '''')
, ambas más lentas.
Siéntase libre de agregar casos de prueba adicionales.
Verifique http://www.w3schools.com/jsref/jsref_substr.asp En su caso sería algo así como
string.substr(0, string.length - 2)
utilizar
var size = parseInt(''245px'', 10);
donde 10 es el radix que define parseInt
está analizando a un valor decimal
use parseInt pero no use parseInt sin una radix
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 usar un sistema de numeración de base diez.
- El tipo de entrada predeterminado para ParseInt () es decimal (base 10).
- Si el número comienza en "0", se supone que es octal (base 8).
- Si comienza en "0x", se supone que es hexadecimal
¿por qué? si $ (this) .attr (''num'') sería "08" parsInt sin una raíz se convertiría en 0
Para convertir 245px
en 245 simplemente ejecuta:
parseInt(''245px'', 10);
Conserva solo los números principales y descarta todo el resto.