remove part from all javascript string variables erase

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étodo substr sería lo mejor, como "250 " == 250 (incluso con el espacio) dará como resultado true
  • 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.



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.