Ver Mensaje Individual
  #2 (permalink)  
Antiguo 12/01/2014, 01:09
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años, 2 meses
Puntos: 977
Respuesta: Busqueda con conteo de palabras y caracteres

Para validar que el número de registro ingresado contenga 13 dígitos (asumo que se trata de dígitos porque dices que es un número de registro), puedes utilizar expresiones regulares.

Código PHP:
Ver original
  1. $numero = "4352345234544";
  2. $patron = "/^[\d]{13}$/";
  3. echo preg_match($patron, $numero) ? "Correcto" : "Incorrecto";

Lo de arriba imprimirá "Correcto", pues el número contiene 13 dígitos, ni más dígitos, ni menos dígitos ni otros caracteres en lugar de dígitos.

Una observación:

En la línea if (strlen(trim($id)) == " "), utilizas la función strlen, con la cual obtienes la cantidad de caracteres de la cadena, por lo tanto, no puedes comparar un número con un espacio en blanco. Probablemente hayas querido hacer algo así:

Código PHP:
Ver original
  1. if (trim($id) == " ")

Pero aún así, estás evaluando que la cadena sea igual a un espacio en blanco, cuando lo correcto sería (para el caso de comprobar si no hay un contenido) que lo compares con dos comillas dobles sin espacios en medio, pero como utilizas strlen, o bien lo comparas con cero (esto debido a que la función cuenta la cantidad de caracteres), o evalúas si es false, anteponiéndole un signo de admiración.

Código PHP:
Ver original
  1. if (strlen(trim($id)) === 0) //Forma 1
  2. if (!strlen(trim($id))) //Forma 2 (Recomendada)

Utilizo el operador de igualdad estricta (tres signos de igualdad), ya que el cero también equivale al valor booleano false, pero con el operador de igualdad estricta, compruebo su valor y tipo de dato, el cual es númerico, aunque en este caso, hubiera dado lo mismo, ya que si la evaluación de la cantidad de caracteres de la cadena arrojara false como resultado, querría decir que la cadena no contiene caracteres, o lo que lo mismo decir que no tiene un contenido.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand