Autor
|
Tema: [Pregunta]: ¿Cómo sería el equivalente de este código JS en PHP? (Leído 3,508 veces)
|
Leguim
Desconectado
Mensajes: 720
|
No necesito que me hagan todo el algoritmo, pero hay cosas como .match de javascript que nosé cual sería en PHP. var expression_lower = new RegExp('[a-z]'); var expression_number = new RegExp('[0-9]'); var expression_symbol = new RegExp('([!,%,&,@,#,$,^,*,?,_,~])'); var expression_upper = new RegExp('[A-Z]'); var security = 0; if(string.match(expression_lower)) { security = security + 1; } if(string.match(expression_number)) { security = security + 1; } if(string.match(expression_symbol)) { security = security + 1; } if(string.match(expression_upper)) { security = security + 1; } if(string.length >= 8) { security = security + 1; }
|
|
|
En línea
|
|
|
|
#!drvy
|
Puesto que tienes una serie de expresiones regulares, realmente lo que te interesa es que estas formen parte de un array (u objeto) que puedas recorrer. Así no tienes declarar una variable y/o hacer un IF por cada una. <?php $password = 'testAb9!'; $security = 0; 'lower' => '[a-z]', 'upper' => '[A-Z]', 'symbol' => '([!,%,&,@,#,$,^,*,?,_,~])', 'number' => '[0-9]' ); foreach ($rules as $rule) { $security++; } }
Tambien puedes hacerlo con array_reduce: $security = array_reduce($rules, function ($carry, $rule) use ($password) { return (preg_match($rule, $password) > 0 ? $carry + 1 : $carry); }, 0);
De todos modos, este concepto de puntuación de contraseña es básico. Te interesa comprar patrones y repeticiones. Por ejemplo, no es lo mismo tener de contraseña Miguel2020! que 20M!gu3l20 (en este caso, ambos tienen la misma puntuación). Saludos
|
|
« Última modificación: 12 Febrero 2021, 23:59 pm por #!drvy »
|
En línea
|
|
|
|
Leguim
Desconectado
Mensajes: 720
|
Puesto que tienes una serie de expresiones regulares, realmente lo que te interesa es que estas formen parte de un array (u objeto) que puedas recorrer. Así no tienes declarar una variable y/o hacer un IF por cada una. <?php $password = 'testAb9!'; $security = 0; 'lower' => '[a-z]', 'upper' => '[A-Z]', 'symbol' => '([!,%,&,@,#,$,^,*,?,_,~])', 'number' => '[0-9]' ); foreach ($rules as $rule) { $security++; } }
Tambien puedes hacerlo con array_reduce: $security = array_reduce($rules, function ($carry, $rule) use ($password) { return (preg_match($rule, $password) > 0 ? $carry + 1 : $carry); }, 0);
De todos modos, este concepto de puntuación de contraseña es básico. Te interesa comprar patrones y repeticiones. Por ejemplo, no es lo mismo tener de contraseña Miguel2020! que 20M!gu3l20 (en este caso, ambos tienen la misma puntuación). Saludos Sí, es algo básico. Gracias!
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Cual seria el equivalente en debian de esto??
GNU/Linux
|
dato000
|
2
|
2,593
|
17 Febrero 2013, 03:44 am
por dato000
|
|
|
Hola amigos alguien seria tan amable diciendome que tengo mal en este codigo?
PHP
|
zamik
|
2
|
2,229
|
4 Septiembre 2015, 16:33 pm
por LaThortilla (Effort)
|
|
|
Cual seria el equivalente de batch en Linux?
GNU/Linux
|
EliteJockey
|
3
|
3,072
|
17 Noviembre 2017, 03:03 am
por simorg
|
|
|
¿Como sería clasificada este tipo de empresa?
Dudas Generales
|
RaloGomez
|
4
|
2,648
|
5 Junio 2019, 21:34 pm
por Machacador
|
|
|
[Pregunta]: ¿Como puedo hacer esto equivalente con javascript?
Desarrollo Web
|
Leguim
|
9
|
5,506
|
3 Julio 2020, 09:42 am
por #!drvy
|
|