¿Cómo recorto () una cadena en angularjs?

2 minutos de lectura

Avatar de usuario de Slartibartfast
slartibartfast

¿Hay una forma angular específica? Si no, ¿debería usar el jquery incorporado para hacerlo? Si debo usar el jquery incorporado, ¿cómo llego a la función trim () sin usar $ (o es necesario)?

Editar – Sí, sé sobre str.trim(). Lo siento. Necesito esto para trabajar en IE 8

Editar: en cuanto a que esta pregunta es un duplicado, pregunto específicamente cómo hacer esto en angular, donde la respuesta a la que se hace referencia explica cómo hacerlo en javascript, nodo y jquery. ¿Hay alguna manera de hacerlo usando el jquery incorporado en angular?

Editar: aparentemente, la respuesta es “AngularJS no hace esto”

  • recortar() es un método incorporado en el prototipo String, compatible con la mayoría de los navegadores. El enlace MDN proporciona un polyfill

    – Intriga de codificación

    28 de mayo de 2015 a las 12:16


  • Su edición es muy injusta para las personas que ya han respondido. Debe incluir ese tipo de estipulación en la compensación.

    – Intriga de codificación

    28 de mayo de 2015 a las 12:19

  • posible duplicado de la cadena Trim en JavaScript?

    – Qantas 94 Pesado

    28 de mayo de 2015 a las 12:19

  • Qantas 94 Heavy: sí, el ejemplo de jquery está ahí, pero no sabía si eso funcionaría en angular ya que el $ está anulado.

    – Slartibartfast

    28 de mayo de 2015 a las 12:21

  • Estoy de acuerdo con @CodingIntrigue, sus ediciones son injustas para otras personas que han respondido. Además, aunque angular no proporciona una solución lista para usar, en mi humilde opinión, un filtro es la forma angular de hacer esto.

    – peregrino alfa

    1 mayo 2018 a las 21:04


Avatar de usuario de Zee
Zee

¿Por qué no simplemente usa JavaScript? recortar():

str.trim() //Will work everywhere irrespective of any framework.

Por compatibilidad con <IE9 usar:

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

Lo encontré Aquí

  • Bueno… no en todas partes… por ejemplo, en

    – Intriga de codificación

    28 de mayo de 2015 a las 12:17


  • kangax.github.io/compat-table/es5/#String.prototype.trim. Solo que no en modo estricto en IE9

    – com2ghz

    28 de mayo de 2015 a las 12:18

  • @Slartibartfast. Encontré una solución aquí. También actualizado en código.

    – Zee

    28 de mayo de 2015 a las 12:22

  • Esto funciona y estoy al tanto de esta solución, pero buscaba una forma angular específica, posiblemente usando el jquery incorporado. Parece que esto no existe.

    – Slartibartfast

    28 de mayo de 2015 a las 12:26

  • @Slartibartfast. No hay un método incorporado en angular para esto. sin embargo, puede usar la otra solución que funcionará independientemente de las versiones del navegador.

    – Zee

    28 de mayo de 2015 a las 12:28

Si solo necesitas monitor el valor recortado, entonces sugeriría no manipular la cadena original y usar un filtrar en cambio.

app.filter('trim', function () {
    return function(value) {
        if(!angular.isString(value)) {
            return value;
        }  
        return value.replace(/^\s+|\s+$/g, ''); // you could use .trim, but it's not going to work in IE<9
    };
});

Y entonces

<span>{{ foo | trim }}</span>

use el método trim () de javascript después de que todos los angularjs también sean un marco de javascript y no es necesario poner $ para aplicar trim ()

por ejemplo

var x="hello world";
x=x.trim()

  • Anteriormente en la pregunta no se mencionó que no funciona para usted en IE, por lo que ahora puede usar str.replace(/^\s+|\s+$/g, ‘ ‘);

    – Shubham Nigam

    28 de mayo de 2015 a las 12:24

Avatar de usuario de Sheyda Hosseini
Sheyda Hosseini

Inserto este código en mi etiqueta y funciona correctamente:

ng-show="!Contract.BuyerName.trim()" >

JS .trim() es compatible básicamente con todo, excepto IE 8 y versiones anteriores.

Si desea que funcione con eso, puede usar JQuery, pero deberá ser

Su otra opción, si le importa IE7/8 (como mencionó anteriormente), es agregar recorte usted mismo:

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

  • De esta y otras respuestas, deduzco que no hay una forma específica de angularjs para manejar esto.

    – Slartibartfast

    28 de mayo de 2015 a las 12:23

  • De esta y otras respuestas, deduzco que no hay una forma específica de angularjs para manejar esto.

    – Slartibartfast

    28 de mayo de 2015 a las 12:23

¿Ha sido útil esta solución?