Javascript Trim functie


door: JorisO 
javascript trim

Het ontbreekt javascript aan een standaard 'trim()' functie zoals men die vindt in bijvoorbeeld PHP of ASP VBscript om whitespace (spaties) aan begin en eind van een string variabele te verwijderen. Onderstaande javascript trim() functie is eenvoudige oplossing voor dit probleem.

function trim(value) {
  value = value.replace(/^\s+/,'');
  value = value.replace(/\s+$/,'');
  return value;
}

Gebaseerd op de replace methode van het javascript string object. Eenvoudig doch handig.



Commentaar van bezoekers:
van: david
14:14:44, 23rd-May-07
thanx!!!

van: rinke
00:29:51, 7th-Jun-07
idd!! lekker makkelijk te googelen dit :D

van: Hoi
12:49:54, 15th-Jun-07
Hij stript geen new lines? -_-'

van: piet
17:26:22, 18th-Jun-07
nee new lines zijn n ipv s in regular expressions

van: RK
11:37:37, 25th-Jun-07
Kan wel wat korter:
value = value.replace(/^s+|s+$/,'');

van: joriso
20:32:13, 25th-Jun-07
idd - komt op hetzelfde neer maar is netter. thx!

van: JWHM
15:31:54, 24th-Aug-07
Nog korter is :
function trim(value) {
return value.replace(/^s+|s+$/,'');
}

van: S
19:48:51, 12th-Sep-07
String.prototype.ltrim = function () { return this.replace(/^ */,""); }
String.prototype.rtrim = function () { return this.replace(/ *$/,""); }
String.prototype.trim = function () { return this.ltrim().rtrim(); }

extend the String object so you can use them by String.trim();

van: gamecreature
12:39:40, 3rd-Oct-07
LET OP:
value.replace(/^s+|s+$/,''); is NIET goed!

Als je namelijk leading whitespaces hebt, worden de trailing whitespaces niet getrimt!! Omdat de eerste match al voldoet.

Twee afzonderlijke replaces werken wel:
value.replace(/^s+/,'').replace(/s+$/,'');



van: karel
16:07:10, 3rd-Oct-07
Kunt ook ^w* en w*$ gebruiken (strip alle whitespace characters)

van: jan
21:20:33, 17th-Nov-07
bedankt, alweer wat geleerd voor m'n site!

van: Clemens
10:01:32, 9th-Feb-08
"n".replace( /w*/, 'x').replace( /w*/, 'x') is not working properly on FF on MAC

van: Karel van Zijl
14:39:51, 26th-Mar-08
Weet niet of het werkt in FF, Safari e.a. browsers. Het werkt iig wel in IE7. Om zowel te de spaties links als recht weg te halen in een string gebruik ik de volgende functie:

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

-------------------

Bijv:

<input name="username" type="text" id="field" value="Gebruikersnaam" onFocus="if(this.value=='Gebruikersnaam') this.value='';" onBlur="if(trim(this.value)=='') this.value='Gebruikersnaam'; else this.value=trim(this.value);" />
<br />
<input type="password" name="passwd" id="field" value="Wachtwoord" onFocus="if(this.value=='Wachtwoord') this.value='';" onBlur="if(trim(this.value)=='') this.value='Wachtwoord'; else this.value=trim(this.value);" />

van: T
11:35:46, 7th-Aug-08
Like S said, it's best to extend the String object by prototyping.

My own additions:
function trim(value) {
return value.replace(/(^\s+|\s+$)/,'');
}

alert(trim(' test ');


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

alert(' test '.trim());

You could replace \s with \w

van: T
11:36:39, 7th-Aug-08
Above code is auto-escaped (addslashes) by this system... handy

van: Willem
11:51:33, 27th-Jun-09
Bedankt! Hij's mooi.
(En je staat bovenaan google op javascript+trim)

van: Jan-Willem Arnold
22:34:26, 24th-Sep-09
<script type=\"text/javascript\">

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

var ctest = \" test test test \";
document.write(\"<pre>\" + \"X\" + ctest.trim() + \"X\" + \"</pre>\");

</script>

- Spaties in het midden blijven ongeschonden.
- Spaties aan het begin worden verwijderd.
- Spaties aan het einde worden verwijderd.
- Alle bovenstaande condities moeten in elke willekeurige combinatie met elkaar werken.

De eerder genoemde faalt bij mij op de combinatie van alle drie de condities. Het toevoegen van een \'g\' zoals in het voorbeeld hierboven lost dat op.

van: turbots
16:57:52, 15th-Dec-09
thanks Jan-Willem! Werkt perfect.

Toch er even bij vermelden voor de minder ervaren gebruikers die problemen hebben met zijn oplossing:
- Je moet de dubbele back slashes in zijn string natuurlijk ontdubbelen, hij kan ze immers niet als enkele back slashes erin plaatsen, anders komt er troep op deze pagina :-)

Dan wordt het dit:

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

van: RvL
15:38:56, 23rd-Feb-10
He Joris,

Thanks! Hier was ik dus net naar op zoek.

Groet, je neef

Commentaar toevoegen:
Naam:
Link:(niet verplicht)
Commentaar:
<-- code:
  


Gerelateerde Artikels :
webdevelopment:
Javascript Trim functie

Snel zoeken:



Vogelschedel t-shirt
17 Euro

Toevallig
passerende
cartoon
:




All content copyleft 2008 Joris Osterhaus - www.hardcode.nl