Espero q alguíen me pueda colaborar en mi duda, muchas gracias de antemano.
Saludos

| |||
Modificadores de Patrón - Expresiones regulares Hola a todos, tengo entendido que para expresiones regulares en javascript solo existen modificadores de patron g, i, m, s, x, el problema es q necesito hacer una conversion de una expresion regular en php donde utilizan el modificador D (PCRE_DOLLAR_ENDONLY) el cual no existe en js, ahora mi pregunta es: ¿existe algún equivalente en js? Espero q alguíen me pueda colaborar en mi duda, muchas gracias de antemano. Saludos ![]() |
| |||
Respuesta: Modificadores de Patrón - Expresiones regulares Gracias por el interés, el problema es q me dieron la expresión regular con ese modificador dentro de una función(PHP) q se encarga de validar datos de tarjetas de crédito, y simplemente me dijieron queremos q ahora esa función este en js sin ninguna explicación alguna, bueno solo tengo la referencia de http://php.net/manual/en/reference.pcre.pattern.modifiers.php q no ayuda mucho por cierto, pero pediré una explicación de q hace ese modificador o como lo implementaron, luego te comentaré para ver como podriamos solucionarlo. Saludos! |
| ||||
Respuesta: Modificadores de Patrón - Expresiones regulares por lo que he entendido se refiere al carácter ($) que coincide con el final de la cadena sobre la que se está buscando. por ejemplo Cita: coincide con/\d+$/ Cita: pero no incide con1232 sfsdf33123 Cita: adasa1124fsdfds Última edición por IsaBelM; 29/04/2011 a las 15:15 |
| |||
Respuesta: Modificadores de Patrón - Expresiones regulares Holas, gracias por el interes en el tema IsaBelM, bueno buscando por la web encontré está definición de /D en http://php.net/manual/es/regexp.reference.anchors.php, acá un ejemplo de su uso: Supongamos q tenemos el siguiente código: Cita: en éste código se tiene una expresión regular sencilla /[a-z]\d{3}$/, q nos indica q una cadena puede tener de 0 a n caracteres al principio y q termine si o si con 3 dígitos al final, bueno en el código anterior nos devuelve true ya q se cumple la condición, bueno hasta ahí todo bien, pero q pasa si se me ocurre colocar un salto de línea en la cadena, algo asívar valor = "abc123"; alert(/[a-z]\d{3}$/.test(valor)); Cita: En éste caso nos devolverá un false ya q el comportamiento por defecto de $ es q en cada salto de ĺinea y en el final de la cadena se evaluará la expresión regular, es decir:var valor = "abc\n123"; alert(/[a-z]\d{3}$/.test(valor)); Cita: bueno para evitar este comportamiento es donde entra /D PCRE_DOLLAR_ENDONLY q fuerza a q se ignoren los saltos de línea y q sólo se evalúe el final de la cadena, así la cadena "abc\n123" con la expresion regular /[a-z]\d{3}$/D nos devolvería true (claro, si esto fuese en PHP funcionaria), bueno un equivalente en js sería q antes de mandar a evaluar la cadena con la expresión regular tendríamos q eliminar todos los saltos de línea q existiesen en la cadena, algo así:Si la cadena es "abc\n123" Se evalúa /[a-z]\d{3}$/ en "abc", retorna false porque no cumple la condición Se evalúa /[a-z]\d{3}$/ en "123", retorna false porque no cumple la condición Cita: Bueno espero q esto le sea util a alguién, ya q esto se lo utilizar en validaciones de tarjetas de crédito.var valor = "abc123"; valor = valor.replace(/\n/gi, ''); //Lei por ahi q ésto no es compatible con ie7 alert(/[a-z]\d{3}$/.test(valor)); Saludos ![]() |
| |||
Respuesta: Modificadores de Patrón - Expresiones regulares Bueno si tienes razón IsaBelM creo q es un ejemplo muy trivial el q puse y es válida la solución q planteas, pero por ej para la validación de digamos un numero de tarjeta MasterCard estoy usando la siguiente expresion regular /^5\d{3}[ \-]?\d{4}[ \-]?\d{4}[ \-]?\d{4}$/D bueno aqui si es un poco dificil utilizar el patrón de atajo \s ya q los saltos de linea pueden estar en cualquier posición de la cadena, bueno quisiera cambiar la expresión regular por una mas sencilla pero no me autorizaron para ello, todo un lio, de todas formas gracias por la observación. Saludos! |
Etiquetas: |