Muchas gracias a todos por las respuestas!
Creo que se cuelga por el tiempo de analisis, pero no hay bucle alguno, solo una expresión regular:
Código:
if (cadena.match(/^[\a-zA-Z'üïñçÜÏÑÇàèìòùáéíóúÀÈÌÒÙÁÉÍÓÚ0-9]+([.,'\+\-\(\)\*\?\¿\!"%\sa-zA-ZüïñçÜÏÑÇàèìòùáéíóúÀÈÌÒÙÁÉÍÓÚ-]*)*[.,'\+\-\(\)\*\?\¿\!"%a-zA-ZüïñçÜÏÑÇàèìòùáéíóúÀÈÌÒÙÁÉÍÓÚ]$/ )){
return true;
}else{
return false;
}
Que funciona bien con textos cortos.
Finalmente intentaré recortar el tamaño del campo a uno mas razonable y optaré por dividir en secciones.
Saludos!