Ver Mensaje Individual
  #3 (permalink)  
Antiguo 25/07/2020, 18:40
Avatar de pcarvajal
pcarvajal
 
Fecha de Ingreso: enero-2002
Mensajes: 701
Antigüedad: 22 años, 4 meses
Puntos: 8
Respuesta: Jquery Expresion Regular (facilita)

Hola tuadmin,
Te comento que lo solucioné de esta forma (vamo arando dijo la mosca )

Código PHP:
var rut "1234567-8";
var 
patron = [B]/^[0-9]{8}-[0-9k]$/i[/B];
if (
patron.test(rut)) {
         return 
true;
}else{
         return 
false;

Entiendo que la expresión regular dice (rectificame por favor si me equivoco):
"desde el principio (^) de la cadena, los primeros {8} caracteres tienen que ser números del 0 al 9 ([0-9]), luego viene un guión (-), y el caracter final puede ser cualquier número del 0 al 9 o una K [0-9k]"

Lo último no me queda muy claro $/i que es lo que hace.

Según me explicaron: "The main problem is that you used a string literal inside a RegExp constructor with regex delimiter chars included in the regex pattern"

San Google lo tradujo así: "El problema principal es que usó una cadena literal dentro de un constructor RegExp con caracteres delimitadores de expresiones regulares incluidas en el patrón de expresiones regulares."

Entendí hasta la mitad... pero asumo fué porque usaba el [-] dentro de un new RegExp. Si pudieras explicarme en forma más clara te lo agradecería, así no quedo con la duda y aprendo un poco de pasadita :)

Ah! sobre el "if", sé que hay una manera más corta para hacerlo en una sola línea, pero no se como se hace
Código PHP:
if (patron.test(rut)) {
         return 
true;
}else{
         return 
false;

Y sobre la misma me surge otra duda, si hubiera un alert("lo que sea") antes del return true, ¿tambien podría escribirse el if en una sola línea?

Cita:
creo que estas confundiendo PHP con javascript
lo que pasa es que originalmente quise borrar el post, pero FDW no me dejó hacerlo por eso edité el título y le puse "jquery".

Saludos y gracias por responder!
__________________
18 laaaaargos años en FDW... y soy de los pocos que ví correr sangre! :X