¿Cómo recorto una cadena en JavaScript?
javascript
string
trim
Vinod
fuente
fuente
String.trim()
También funciona bien fuera de la caja en Node.js.String.trim()
el método de clase no existe en ES5 / Node.js; en cambioString.prototype.trim()
, existe el método de instancia. Uso:' foo '.trim()
noString.trim(' foo ')
.$.trim(str)
siempre está disponible.Respuestas:
Todos los navegadores desde IE9 + tienen un
trim()
método para cadenas.Para aquellos navegadores que no son compatibles
trim()
, puede usar este polyfill de MDN :Dicho esto, si se usa
jQuery
,$.trim(str)
también está disponible y maneja indefinido / nulo.Mira esto:
fuente
$.trim(str)
siempre está disponible.El recorte de jQuery es conveniente si ya está utilizando ese marco.
Tiendo a usar jQuery a menudo, por lo que recortar cadenas con él es natural para mí. ¿Pero es posible que haya una reacción violenta contra jQuery? :)
fuente
Aunque hay un montón de respuestas correctas arriba, debe tenerse en cuenta que el
String
objeto en JavaScript tiene un.trim()
método nativo a partir de ECMAScript 5 . Por lo tanto, idealmente, cualquier intento de crear un prototipo del método de recorte realmente debería comprobar si ya existe primero.Agregado de forma nativa en: JavaScript 1.8.1 / ECMAScript 5
Así apoyado en:
Firefox: 3.5+
Safari: 5+
Internet Explorer: IE9 + (¡solo en modo estándar!) Http://blogs.msdn.com/b/ie/archive/2010/06/25/enhanced-scripting-in-ie9-ecmascript-5-support-and-more .aspx
Chrome: 5+
Opera: 10.5+
Tabla de soporte de ECMAScript 5: http://kangax.github.com/es5-compat-table/
fuente
Hay muchas implementaciones que se pueden usar. Lo más obvio parece ser algo como esto:
fuente
Versión simple aquí ¿Cuál es una función general para el recorte de JavaScript?
fuente
Sé que esta pregunta se hizo hace tres años. Ahora,
String.trim()
se agregó de forma nativa en JavaScript. Por ejemplo, puede recortar directamente de la siguiente manera,fuente
Si está utilizando jQuery, use la
jQuery.trim()
función Por ejemplo:fuente
Flagrant Badassery tiene 11 versiones diferentes con información de referencia:
http://blog.stevenlevithan.com/archives/faster-trim-javascript
No sorprendentemente, las expresiones basadas en expresiones regulares son más lentas que el bucle tradicional.
Aquí está mi personal. Este código es viejo! Lo escribí para JavaScript1.1 y Netscape 3 y desde entonces solo se ha actualizado ligeramente. (Original usado String.charAt)
fuente
Utilizar los métodos nativos de JavaScript:
String.trimLeft()
,String.trimRight()
, yString.trim()
.String.trim()
es compatible con IE9 + y todos los demás navegadores principales :String.trimLeft()
yString.trimRight()
no son estándar, pero son compatibles con todos los principales navegadores, excepto IESin embargo, el soporte de IE es fácil con un polyfill:
fuente
trimLeft
otrimRight
.lTrim()
yrTrim()
métodos.Desvergonzadamente robado de Matt Duereg .
fuente
Hoy en día puedes usar string.trim () que es una implementación nativa de Javascript
Ver también
fuente
Recortar código del proyecto angular js
y llámalo como
trim(" hello ")
fuente
usa simplemente código
Soporte del navegador
Para el navegador antiguo, agregue el prototipo
fuente
replace
función regexp. No lo entendí completamente. ¿Te gustaría explicar un poco más la parte de expresiones regulares?Aquí hay una manera muy simple:
fuente
trim
solo debe eliminar los espacios en blanco iniciales y finales (que incluyen pestañas y otros caracteres). Esto, en cambio, elimina todos los espacios, incluidos los del medio.Usar
trim()
en String, que es nativo, podría ser la forma más fácil:fuente
Puede declarar su variable como cadena y usar su función de recorte:
fuente
Hoy, casi todos los navegadores son compatibles
String.prototype.trim()
.Lo usas así:
En caso de que aún necesite admitir un navegador antiguo que no admite esta función, este es un polyfill sugerido por el MDN:
fuente
Tengo una lib que usa trim. así que lo resolvió usando el siguiente código.
fuente
.trim()
método igual al nativoString.prototype.trim
que ya se ha configuradoreturn jQuery.trim(this)
, creando así un desbordamiento de pila.De las respuestas anteriores, difiere agregar bandera
m
.Flag
m
buscará el texto de varios lineales. En este modo, la marca al comienzo y al final del patrón (^
$
) se inserta antes y después del carácter de nueva línea (\n
).fuente
Puedes hacerlo usando el JavaScript simple:
fuente
Ahora recorte () construir en javascript.
solo consola o imprima el código, su nombre también se recortará.
fuente
No sé qué errores pueden esconderse aquí, pero uso esto:
O esto, si el texto contiene ingresa:
Otro intento:
fuente
Aquí está en TypeScript:
Volverá a la expresión regular si el prototipo nativo no está disponible.
fuente
Había escrito esta función para trim, cuando la función .trim () no estaba disponible en JS en 2008. Algunos de los navegadores más antiguos todavía no admiten la función .trim () y espero que esta función pueda ayudar a alguien.
FUNCION TRIM
Explicación : La función trim () acepta un objeto de cadena y elimina los espacios en blanco iniciales y finales (espacios, tabulaciones y líneas nuevas) y devuelve la cadena recortada. Puede usar esta función para recortar entradas de formulario para garantizar que se envíen datos válidos.
La función se puede llamar de la siguiente manera como ejemplo.
fuente
el mío usa una expresión regular única para buscar casos en los que es necesario recortar, y usa los resultados de la expresión regular para determinar los límites de subcadena deseados:
La única decisión de diseño que se tomó fue utilizar una subcadena para realizar la captura final. s / \?: // (hacer la captura del término medio) yy el fragmento de reemplazo se convierte en:
Hay dos apuestas de rendimiento que hice en estas implicaciones:
¿La implementación de la subcadena copia los datos de la cadena original? si es así, en el primero, cuando se necesita recortar una cadena, hay un doble recorrido, primero en la expresión regular (que, con suerte, puede ser parcial), y segundo en la extracción de la subcadena. es de esperar que una implementación de subcadena solo haga referencia a la cadena original, por lo que operaciones como la subcadena pueden ser casi gratuitas. cruza los dedos
¿Qué tan buena es la captura en el regex impl? El término medio, el valor de salida, podría ser potencialmente muy largo. no estaba listo para admitir que todas las capturas de expresiones regulares de expresión no se resistirían a una captura de entrada de un par de cientos de KB, pero tampoco probé (¡demasiados tiempos de ejecución, lo siento!). el segundo SIEMPRE ejecuta una captura; si su motor puede hacer esto sin recibir un golpe, tal vez usando algunas de las técnicas de cuerda de cuerda anteriores, ¡seguro que LO USE!
fuente
Para IE9 + y otros navegadores
fuente