martes, 12 de mayo de 2009

Obteniendo los caracteres invalidos a partir de un RegExp

Hoy, tuve que hacer una función en Javascript que analiza una cadena y retorna que fragmentos de la cadena son inválidos o no son compatibles con la expresión regular dada.

Les comparto la función:


function extractBadCharsInRegexp(regexp, str, whiteSpaceLabel, errorLabel){
var splitResult = str.split(regexp);
var resultArray = [];

//limpio el array de cadenas vacias
for(var i = 0; i < splitResult.length; i++){
var tmp = splitResult[i];
if(tmp.length > 0){
resultArray.push(tmp);
}
}
//si el nuevo array tiene elementos hay un error
if(resultArray.length > 0){
var result = resultArray.join(",")
var nowhiteResult = result.replace(/\s/g, '');
if(nowhiteResult != result){
alert(whiteSpaceLabel);
}
//muestro mensaje si hay caracteres distintos a espacio
if(nowhiteResult.replace(',', '').length > 0){
alert([errorLabel, ' [', nowhiteResult, "]"].join(''));
}
}
return resultArray;
}