Traté de aplicar .trim()
a una cadena en uno de mis programas de JavaScript. Funciona bien en Mozilla, pero aparece un error cuando lo intento en IE8. ¿Alguien sabe qué está pasando aquí? ¿Hay alguna forma de hacerlo funcionar en IE?
código:
var ID = document.getElementByID('rep_id').value.trim();
pantalla de error:
Mensaje: el objeto no admite esta propiedad o método Línea: 604 Char: 2 Código: 0 URI: http: //test.localhost/test.js
javascript
internet-explorer
trim
Jin Yong
fuente
fuente
"whatever ".trim()
prueba eso en IE8.trim()
y no me creería lo que veía cuando descubrí que no era compatible. Gracias por aclarar eso. Iba a preguntar lo mismo que tú pediste.Respuestas:
Agregue el siguiente código para agregar la funcionalidad de recorte a la cadena.
fuente
replace(/^\s\s*/, '').replace(/\s\s*$/, '')
debería ser aproximadamente 3 veces más rápido quereplace(/^\s+|\s+$/, '')
en Firefox 2, según un punto de referencia: blog.stevenlevithan.com/archives/faster-trim-javascriptreplace(/^\s+|\s+$/, '')
solo elimina los espacios iniciales o finales, que no es el comportamiento esperado de una función de recorte. Si desea eliminar los espacios iniciales y finales, debe utilizarlosreplace(/^\s+|\s+$/g, '')
.Parece que esa función no está implementada en IE. Si está utilizando jQuery, puede utilizarlo
$.trim()
en su lugar ( http://api.jquery.com/jQuery.trim/ ).fuente
jQuery:
Alguien usa
$("#mycomment").val().trim();
pero esto no funcionará en IE.fuente
Lamentablemente, no hay compatibilidad JavaScript entre navegadores para trim ().
Si no está utilizando jQuery (que tiene un método .trim ()) puede usar los siguientes métodos para agregar soporte de recorte a las cadenas:
fuente
https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Global_Objects/String/Trim
Esta es una adición bastante reciente a JavaScript, y no es compatible con IE.
fuente
Tuve un problema similar al intentar recortar un valor de una entrada y luego preguntar si era igual a nada:
Sin embargo, esto arrojó una llave en las obras para IE6 - 8. Lo suficientemente molesto que había intentado variar así:
Sin embargo, el uso del método de recorte de jQuery funciona perfectamente para mí en todos los navegadores.
fuente
He escrito un código para implementar la funcionalidad de recorte.
LTRIM (recorte a la izquierda):
RTRIM (recorte a la derecha):
RECORTAR (recortar ambos lados):
O
También está disponible la expresión regular que podemos usar.
Explicación útil
fuente
\t
,\r
,\n
y tal. Sólospaces
. Regexp es mejor si no te apetece realmente esforzarte para manejar todo manualmente.¡Podemos obtener el código oficial de Internet! Consulte esto:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/trim
para más información: acabo de encontrar que hay un proyecto js para admitir EcmaScript 5: https://github.com/es-shims/es5-shim al leer el código fuente, podemos obtener más conocimiento sobre el recorte.
fuente
No creo que haya un
trim()
método nativo en el estándar de JavaScript. Tal vez Mozilla suministre uno, pero si desea uno en IE, deberá escribirlo usted mismo. Hay algunas versiones en esta página .fuente
Tuve el mismo problema en IE9 Sin embargo, cuando declaró la versión html compatible con la siguiente etiqueta en la primera línea antes del
El problema fue resuelto.
fuente
Esto se debe al error tipográfico getElementBy ID . Cámbielo a getElementById
fuente
fuente
Me acabo de enterar de que IE deja de ser compatible
trim()
, probablemente después de una actualización reciente de Windows. Si usa dojo, puede usardojo.string.trim()
, funciona multiplataforma.fuente
Este problema puede deberse a que IE usa el modo de compatibilidad en sitios de intranet. Hay dos formas de resolver esto, puede actualizar IE para que no use el modo de compatibilidad en su máquina local (en IE11: Herramientas-> Configuración de Vista de compatibilidad -> Desmarque Mostrar sitios de intranet en Vista de compatibilidad)
Mejor aún, puede actualizar las metaetiquetas en su página web. Añadir:
¿Qué significa esto? Le dice a IE que use el último modo de compatibilidad. Hay más información disponible en MSDN: Especificación de modos de documentos heredados
fuente