Pregunta Recortar cadena en JavaScript?


¿Cómo recorte una cadena en JavaScript?


1235
2018-01-31 15:12


origen


Respuestas:


Todos los navegadores desde IE9 + tienen trim().

Para aquellos navegadores que no admiten trim(), puedes usar este polyfill de MDN:

if (!String.prototype.trim) {
    (function() {
        // Make sure we trim BOM and NBSP
        var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
        String.prototype.trim = function() {
            return this.replace(rtrim, '');
        };
    })();
}

Mira esto:

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

String.prototype.ltrim=function(){return this.replace(/^\s+/,'');};

String.prototype.rtrim=function(){return this.replace(/\s+$/,'');};

String.prototype.fulltrim=function(){return this.replace(/(?:(?:^|\n)\s+|\s+(?:$|\n))/g,'').replace(/\s+/g,' ');};

857
2018-01-31 15:26



El ajuste de jQuery es conveniente si ya está usando ese marco.

$.trim('  your string   ');

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? :)


475
2018-01-31 15:16



Aunque hay un montón de respuestas correctas, se debe tener en cuenta que String objeto en JavaScript tiene un nativo .trim() método a partir de ECMAScript 5. Por lo tanto, idealmente cualquier intento de prototipo del método de ajuste realmente debería verificar si ya existe primero.

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

Agregado de forma nativa en: JavaScript 1.8.1 / ECMAScript 5

Así apoyado en:

Firefox: 3.5+

Safari: 5+

Explorador de Internet: IE9 + (¡Solo en modo Estándares!) http://blogs.msdn.com/b/ie/archive/2010/06/25/enhanced-scripting-in-ie9-ecmascript-5-support-and-more.aspx

Cromo: 5+

Ópera: 10.5+

Tabla de soporte de ECMAScript 5: http://kangax.github.com/es5-compat-table/


160
2017-12-15 15:21



Existen muchas implementaciones eso puede ser usado. El más obvio parece ser algo como esto:

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

" foo bar ".trim();  // "foo bar"

124
2018-01-31 15:14



Versión simple aquí ¿Cuál es una función general para el ajuste de JavaScript?

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

45
2018-01-31 15:15



Sé que esta pregunta ha sido formulada hace tres años. Ahora,String.trim() se agregó de forma nativa en JavaScript. Para una instancia, puede recortar directamente de la siguiente manera:

document.getElementById("id").value.trim();

27
2018-01-25 11:02



Flagrante Badassery tiene 11 ajustes diferentes con información de referencia:

http://blog.stevenlevithan.com/archives/faster-trim-javascript

No sorprendentemente, basados ​​en expresiones regulares son más lentos que el bucle tradicional.


Aquí está mi personal. Este código es viejo! Lo escribí para JavaScript1.1 y Netscape 3 y solo se ha actualizado ligeramente desde entonces. (Original utilizado String.charAt)

/**
 *  Trim string. Actually trims all control characters.
 *  Ignores fancy Unicode spaces. Forces to string.
 */
function trim(str) {
    str = str.toString();
    var begin = 0;
    var end = str.length - 1;
    while (begin <= end && str.charCodeAt(begin) < 33) { ++begin; }
    while (end > begin && str.charCodeAt(end) < 33) { --end; }
    return str.substr(begin, end - begin + 1);
}

20
2018-03-10 13:38



Si está utilizando jQuery, use el jQuery.trim() función. Por ejemplo:

if( jQuery.trim(StringVariable) == '')

20
2017-08-18 13:38



Use los métodos nativos de JavaScript: String.trimLeft(), String.trimRight()y String.trim().


String.trim() es compatible con IE9 + y todos los otros navegadores principales:

'  Hello  '.trim()  //-> 'Hello'


String.trimLeft() y String.trimRight() no son estándar, pero son compatibles con todos los principales navegadores excepto IE

'  Hello  '.trimLeft()   //-> 'Hello  '
'  Hello  '.trimRight()  //-> '  Hello'


Sin embargo, el soporte de IE es fácil con un poliuretano:

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

12
2018-02-23 05:32