/* Functie controleert of bepaalde code voorkomt in een tekst.
Maar als het in bijvoorbeeld [code] tags staat mag het wel.
@param text De string die gesplitst moet worden.
@param startTag Het openen van een tag let hierbij op [url=blabla] moet worden [url
@param endTag Het afsluiten van een tag let hierbij op dat je de hele tag gebruikt.
@return Geeft false als de text clean is. Geeft true als bepaalde code wel is gevonden
*/
function checkCode(text,startTag,endTag){
//Enkele variabelen die nodig zijn
var array = splitUBB(text,startTag,endTag);
var regex = new RegExp("<[a-z]"); //Reguliere expressie voor een controle op html
var checkArray = new Array();
//Hieronder kan je de checkArray vullen met eigen code waar je op wilt controleren
checkArray[0] = 'echo $';
checkArray[1] = 'system.out';
//Loop de array met alle text door.
for(k = 0; k < array.length; k++){
//Als het begin begint met de startTag dan slaan we hem over
if(array[k].substring(0,5) != startTag){
//Met de regex controleren op html is het gevonden return true;
if(regex.test(array[k])){
return true;
}
//Loop door de checkArray als tekst is gevonden return true
for(l = 0; l < checkArray.length; l++){
if(array[k].indexOf(checkArray[l],0) != -1){
return true;
}
}
}
}
//Huh staat het netjes tussen code tags. Tsjaa dan maar false terug geven.
return false;
}
/* Functie voor het opsplitsen van een string op een bepaalde ubb tag
@param text De string die gesplitst moet worden.
@param startTag Het openen van een tag let hierbij op [url=blabla] moet worden [url
@param endTag Het afsluiten van een tag let hierbij op dat je de hele tag gebruikt.
@return Geeft een array met strings terug.
*/
function splitUBB(text,startTag,endTag){
//Enkele variabelen die nodig zijn
var pos = 0;
var array = new Array();
var i = 0;
var j = 0;
var tagFound = false;
//Zolang begin of eind tag nog wordt gevonden.
while(pos != -1){
//Als begin tag niet is gevonden
if(!tagFound){
pos = text.indexOf(startTag,i);
if(pos != -1){
array[j] = text.substring(0,pos);
text = text.substring(pos,text.length);
tagFound = true;
j++;
}
}
//Als begin tag wel is gevonden op zoek naar de eind tag.
else {
pos = text.indexOf(endTag,i);
if(pos != -1){
pos = pos + endTag.length;
array[j] = text.substring(0,pos);
text = text.substring(pos,text.length);
tagFound = false;
j++;
i++;
}
}
}
//Laatste stukje tekst aan de array toevoegen.
if(text.length > 0){
array[j] = text;
}
return array;
}