Cum am trim un șir în JavaScript?
Toate browserele de IE9+ au trim()
metoda pentru siruri de caractere.
Pentru aceste browsere care nu acceptă trim()
, puteți utiliza această 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, '');
};
})();
}
Asta a spus, dacă utilizați "jQuery",$.trim(str)
este de asemenea disponibil și mânere nedefinit/null.
Vezi asta:
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,' ');};
Garnitura de la jQuery este convenabil dacă sunteți deja folosind acest framework.
$.trim(' your string ');
Am tendința de a folosi jQuery multe ori, atât de tundere cu siruri de caractere este natural pentru mine. Dar's posibil că există reacție împotriva jQuery acolo? :)
Deși există o grămadă de răspunsuri corecte de mai sus, ar trebui să fie remarcat faptul că "String" obiect în JavaScript are un nativ .trim()
metoda de ECMAScript 5. Astfel, în mod ideal, orice încercare de prototip garnitura de metodă ar trebui să verificați pentru a vedea dacă există deja primul.
if(!String.prototype.trim){
String.prototype.trim = function(){
return this.replace(/^\s+|\s+$/g,'');
};
}
Adăugat nativ în: JavaScript 1.8.1 / ECMAScript 5
Astfel susținută în:
Firefox: 3.5+
Safari: 5+
Internet Explorer: IE9+ (în modul standard numai!) 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+
ECMAScript 5 Suport de Masă: http://kangax.github.com/es5-compat-table/
Simplă versiune de aici ceea Ce este o funcție generală pentru JavaScript trim?
function trim(str) {
return str.replace(/^\s+|\s+$/g,"");
}
Știu că această întrebare a fost întrebat de trei ani.Acum,`String.trim () a fost adăugat nativ în JavaScript.Pentru un exemplu, aveți posibilitatea să tăiați în mod direct ca urmare,
document.getElementById("id").value.trim();
Dacă utilizați jQuery utilizarea jQuery.trim () funcția. De exemplu:
if( jQuery.trim(StringVariable) == '')
Flagrantă Badassery a 11 diferite ornamente cu informațiile de referință:
http://blog.stevenlevithan.com/archives/faster-trim-javascript
Non-surprinzător regexp-based sunt mai lente decât tradiționale de buclă.
Aici mea personală. Acest cod este vechi! Am scris-o pentru JavaScript1.1 și Netscape 3 și acesta a fost doar ușor actualizate. (Original folosit Șir.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);
}
Utilizați Nativ JavaScript Metode: String.trimLeft()
, Șir de caractere.trimRight()
, Șir de caractere.trim()
.
String.trim()
este susținută în IE9+ și toate celelalte browsere majore:
' Hello '.trim() //-> 'Hello'
String.trimLeft () " și " String.trimRight()
sunt non-standard, dar sunt acceptate în toate browserele majore cu excepția IE
' Hello '.trimLeft() //-> 'Hello '
' Hello '.trimRight() //-> ' Hello'
IE de sprijin este ușor cu un polyfill cu toate acestea:
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, '');
};
}
}
Acum zile, puteți folosi string.trim(), care este nativ Javascript punerea în aplicare
var orig = " foo ";
console.log(orig.trim());//foo
A se vedea, de asemenea,
String.prototype.trim = String.prototype.trim || function () {
return this.replace(/^\s+|\s+$/g, "");
};
String.prototype.trimLeft = String.prototype.trimLeft || function () {
return this.replace(/^\s+/, "");
};
String.prototype.trimRight = String.prototype.trimRight || function () {
return this.replace(/\s+$/, "");
};
String.prototype.trimFull = String.prototype.trimFull || function () {
return this.replace(/(?:(?:^|\n)\s+|\s+(?:$|\n))/g, "").replace(/\s+/g, " ");
};
Nerusinare furat de la Matt duereg.
Tăiați cod de js proiect
var trim = (function() {
// if a reference is a `String`.
function isString(value){
return typeof value == 'string';
}
// native trim is way faster: http://jsperf.com/angular-trim-test
// but IE doesn't have it... :-(
// TODO: we should move this into IE/ES5 polyfill
if (!String.prototype.trim) {
return function(value) {
return isString(value) ?
value.replace(/^\s*/, '').replace(/\s*$/, '') : value;
};
}
return function(value) {
return isString(value) ? value.trim() : value;
};
})();
și sună ca trim(" buna ziua ")
utilizați pur și simplu cod
var str = " Hello World! ";
alert(str.trim());
Sprijin Browser-ul
Feature Chrome Firefox Internet Explorer Opera Safari Edge
Basic support (Yes) 3.5 9 10.5 5 ?
Pentru vechiul browser add prototip
if (!String.prototype.trim) {
String.prototype.trim = function () {
return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
};
}
Astăzi, destul de mult în fiecare browser-ul acceptă Șir de caractere.prototip.tapiterie()
.
Utilizați astfel :
var origStr = ' foo ';
var newStr = origStr.trim(); // Value of newStr becomes 'foo'
În cazul în care totuși s-ar putea nevoie pentru a sprijini o veche browser-ul, care nu't acceptă această caracteristică, aceasta este un polyfill a sugerat de către MDN :
if (!String.prototype.trim) {
String.prototype.trim = function () {
return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
};
}
if(!String.prototype.trim){
String.prototype.trim = function(){
return this.replace(/^\s+|\s+$/gm,'');
};
}
Din răspunsurile anterioare, aceasta diferă adăugarea de pavilion "m".
Steagul " m " va căuta în text de mai multe liniară. În acest mod, marchează începutul și sfârșitul de model (^
$
) este introdusă înainte și după caracterul newline (\n
).
Am scris această funcție pentru tapiterie, atunci când .trim() funcția nu a fost disponibil în JS drumul înapoi în 2008. Unele browsere mai vechi încă nu acceptă .trim() funcția și sper că această funcție poate ajuta pe cineva.
FUNCȚIA TRIM
function trim(str)
{
var startpatt = /^\s/;
var endpatt = /\s$/;
while(str.search(startpatt) == 0)
str = str.substring(1, str.length);
while(str.search(endpatt) == str.length-1)
str = str.substring(0, str.length-1);
return str;
}
Explicație: funcția trim() accepta un obiect șir și de a elimina orice început și de la sfârșit spații goale (spații,tab-uri și newline) și a reveni la tuns șir. Puteți utiliza această funcție pentru a tunde formă de intrări pentru a asigura date valide pentru a fi trimise.
Funcția poate fi apelată în felul următor ca un exemplu.
form.elements[i].value = trim(form.elements[i].value);