Bueno, se me ha ocurrido mirar a ver el rendimiento de esa expresión regular (sólo por curiosidad).
Código:
//sólo menores que 56
var regExp=/^(([0-4]?[0-9])|(5[0-5]))$/;
//genera un numero aleatorio entre min y max
function numAzar(min,max) { return Math.round(Math.random()*(max-min))+min; }
//el array de los numeros
var arr=new Array();
for(var a=0;a<50000;a++) {
arr[a]=numAzar(0,56*2);
}
// PRUEBA1 -- transformando los numeros a string y evaluandolos con la expresion regular
var inicio=new Date();
for(var a=0;a<arr.length;a++) {
regExp.test( arr[a].toString() );
}
var final=new Date();
document.write("PRUEBA1 (transformación toString ): "+(final.getTime()-inicio.getTime())+" milisengundos.<br/>");
// PRUEBA2 -- mirar con un condicional si son menores que 56
var inicio=new Date();
for(var a=0;a<arr.length;a++) {
if( arr[a]<56 );
}
var final=new Date();
document.write("PRUEBA2 (evaluación numerica): "+(final.getTime()-inicio.getTime())+" milisengundos.<br/>");
//los paso todos a string para hacer la prueba inversa
for(var a=0;a<50000;a++) {
arr[a]=arr[a].toString();
}
// PRUEBA3 -- evaluandolos con la expresion regular
var inicio=new Date();
for(var a=0;a<arr.length;a++) {
regExp.test( arr[a] );
}
var final=new Date();
document.write("PRUEBA3 (evaluación de string): "+(final.getTime()-inicio.getTime())+" milisengundos.<br/>");
// PRUEBA4 -- mirar con un condicional si son menores que 56 despues de transformarlos a entero
var inicio=new Date();
for(var a=0;a<arr.length;a++) {
if( parseInt(arr[a])<56 );
}
var final=new Date();
document.write("PRUEBA4 (transformación parseInt): "+(final.getTime()-inicio.getTime())+" milisengundos.<br/>");
Y los resultados de una ejecución cualquiera son:
PRUEBA1 (transformación toString ): 1893 milisengundos.
PRUEBA2 (evaluación numerica): 230 milisengundos.
PRUEBA3 (evaluación de string): 911 milisengundos.
PRUEBA4 (transformación parseInt): 321 milisengundos.
Con lo que se deduce, que quieras hacerlo como quieras hacerlo, va a rendir bastante más si sacas el número mediante parseInt (bueno, supongo que dependerá si es sencillo o complicadísimo de extraer) y lo evalúas que haciéndolo mediante expresiones regulares.
Sólo por curiosidad...