javascript - escape - js replace html entities
String Strip() para JavaScript? (8)
Esta pregunta ya tiene una respuesta aquí:
- Recortar cadena en JavaScript? 24 respuestas
¿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, '''' );
}
Gumbo ya lo notó en un comentario, pero esto se repite como respuesta: el método trim()
se agregó en JavaScript 1.8.1 y es compatible con todos los navegadores modernos (Firefox 3.5+, IE 9, Chrome 10, Safari 5.x ), aunque IE 8 y anteriores no lo admiten. El uso es simple:
" foo/n/t ".trim() => "foo"
Ver también:
Para usuarios de jquery, ¿qué hay de $.trim(s)
Si ya está utilizando jQuery, le jQuery.trim()
echarle un vistazo a jQuery.trim()
que ya está provisto con jQuery.
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.
Steven Levithan escribió una vez sobre cómo implementar un blog.stevenlevithan.com/archives/faster-trim-javascript . Definitivamente vale la pena echarle un vistazo.