oneLiners.js
 

One-liners

Logs [en]
 
Logs [nl]
 
Navigate
 
 

In de traditie van de Binair pagina's in KIJK van Nico Baaijens hier een (groeiende) verzameling one-liners. De code in de grijze vakken wordt rechtstreeks gekopieerd uit de <script> tags, dus deze pagina is WYSIWYR!

QueryString

Hoe vraag ik de waarde van een querystring variabele op?
alert(QueryString());

function QueryString(s) {
  var res=new RegExp("(\\?|&)"+s+"=([^&]*)(&|$)","i").exec(location.search);
  return res?decodeURIComponent(res[2]):null;
}

Trim

Hoe trim je een string in javascript?
alert('['+.trim()+']');

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

Knokkelregel, of, aantal dagen in een maand

Met een handigheidje gemakkelijk het aantal dagen van een maand bepalen (maand is 0-gebaseerd, dag is 1-gebaseerd).
alert(numberOfDays(,));

function numberOfDays(nYear,nMonth) {
  return new Date(nYear,nMonth+1,0).getDate();
}

Grootste

Retouneer de grootste van 3 parameters. Math.max werkt nl. niet altijd (jou browser is OK: Math.max(1,2,3)==3).
alert(biggest(13,24,5));.

/*Beslisboom*/
function biggest(a,b,c) { 
  return a>b?a>c?a:c:b>c?b:c;
} 

Willekeurig element uit een Array

Gemakkelijk een willekeurig element uit een array halen.
alert(['Tien','Boer','Vrouw','Heer','Aas'].rndItem());

Array.prototype.rndItem=function Array_rndItem() {
	return this[parseInt(Math.random()*this.length,10)];
}

Hoofdstukken

Auto-nummer hoofdstukken

Eindelijk geen hoofdstukken meer nummeren met de hand: numberHeaders();

function numberHeaders() {
	var arrNr=[0,0,0,0,0,0]; //chapter count array
  var o, nLevel, strNumber;

	for(var i in document.all) {
    o=document.all[i];
    if(/H[1-6]/i.test(o.tagName)) {
      nLevel=parseInt(o.tagName.substr(1,1),10)-1; //0=h1, 1=h2
      arrNr[nLevel]++; //increase level-counter
      for(var j=nLevel+1; j<9; j++) {
        arrNr[j]=0; //reset lower levels
      }
      strNumber=arrNr.slice(0,nLevel+1).join('.');
      o.innerText=strNumber+' '+o.innerText;
} } }

Genereer Inhoudsopgaaf

Dit script genereert een inhoudsopgaaf. Benedenstaande links demonstreren een lijst van alle <h1> en <h2> tags. Voor het genereren van de hyperlinks zijn twee MS-Methodes nodig, uniqueID en scrollIntoView.
idTOC.innerHTML=insertTOC(1,3); en alert(insertTOC(1,3));

<div id="idTOC">Hier wordt de inhoudsopgaaf geplaatst</div>
function insertTOC(nMinDepth,nMaxDepth) {
  var o, strTOC='';
  for(var i=0; i<document.all.length; i++) {
    o=document.all[i];
    if(/H[1-6]/i.test(o.tagName)) {
      var nLevel=parseInt(o.tagName.substr(1,1),10);
      if(nLevel>=nMinDepth&&nLevel<=nMaxDepth) {
        strTOC+='<a class="toc'+nLevel
           +'" href="javascript: '+o.uniqueID+'.scrollIntoView()">'
           +o.innerText+'</a><br>\n';
  } } }
  return strTOC;
}

Valideer Postcode

Nederlandse postcode valideren (eerst 4 cijfers, waarvan de eerste geen 0 mag zijn, gevolgd door een optionele spatie, en dan twee letters): validatePostalCode()

function validatePostalCode(strPC) {
  return typeof strPC=='string'
    ?strPC.match(/[1-9][0-9]{3} ?[a-zA-Z]{2}/)==strPC
    :false;
  //Met optimalisaties van Henk KH
}

Object to String (showObject)

Snel de properties van een object bekijken. 2e Parameter een optionele reguliere expressie, om de lijst te filteren:
alert(,);

function obj2str(o,r) {
  var s=''; 
  for(var i in o) { 
    if(!r||r.test(i)) {
      s+=i+': '+o[i]+'\n'; 
  } }
  return s;
}