special escape characters javascript trim strip

javascript - escape - js replace html entities



String Strip() para JavaScript? (8)

Esta pregunta ya tiene una respuesta aquí:

¿Qué es una implementación de JavaScript limpia y eficiente para quitar los espacios iniciales y finales de una cadena?

Por ejemplo:

" dog"

"dog "

" dog "

" dog "

todos se convierten en

"dog"


Aquí está la función que uso.

function trim(s){ return ( s || '''' ).replace( /^/s+|/s+$/g, '''' ); }



Para usuarios de jquery, ¿qué hay de $.trim(s)



Si, en lugar de escribir un código nuevo para recortar una cadena, está buscando un código existente que llame a "strip ()" y preguntándose por qué no funciona, es posible que desee comprobar si intenta incluir algo como el marco prototypejs , y asegúrese de que realmente se cargue.
Ese marco agrega una función de tira a todos los objetos String, pero si, por ejemplo, lo actualizaste y tus páginas web siguen refiriéndose al antiguo archivo .js, por supuesto, no funcionará.


Un mejor relleno del MDN que admite la eliminación de BOM y NBSP :

if (!String.prototype.trim) { String.prototype.trim = function () { return this.replace(/^[/s/uFEFF/xA0]+|[/s/uFEFF/xA0]+$/g, ''''); }; }

Tenga en cuenta que la modificación de los prototipos incorporados tiene un impacto en el rendimiento (debido a que el motor JS reduce varias optimizaciones de tiempo de ejecución), y en situaciones críticas de rendimiento puede que tenga que considerar la alternativa de definir myTrimFunction(string) . Dicho esto, si tiene como objetivo un entorno más antiguo sin .trim() nativa con .trim() , es probable que tenga problemas de rendimiento más importantes que resolver.


Utilizar esta:

if(typeof(String.prototype.trim) === "undefined") { String.prototype.trim = function() { return String(this).replace(/^/s+|/s+$/g, ''''); }; }

La función de recorte ahora estará disponible como una función de primera clase en sus cadenas. Por ejemplo:

" dog".trim() === "dog" //true

EDITAR : Tomó la sugerencia de JP de combinar los patrones de expresiones regulares en uno. También se agregó el modificador global según la sugerencia de Christoph.

Tomó la idea de Matthew Crumley de olfatear la función de recorte antes de volver a crearla. Esto se hace en caso de que la versión de JavaScript utilizada en el cliente sea más reciente y, por lo tanto, tenga su propia función de ajuste nativa.