Regex para validación de contraseña en Google Forms

CorePress2024-01-25  10

Estoy intentando crear una expresión regular para validar un campo similar a una contraseña en mi formulario de Google. El problema al que me enfrento es que la validación de expresiones regulares del formulario de Google no admite búsquedas anticipadas. Da un mensaje "Ingrese una expresión regular válida" error. Así que me veo obligado a crear una expresión regular sin búsquedas anticipadas.

Solo se deben cumplir las siguientes dos condiciones para la expresión regular de validación de mi contraseña:

La longitud de los caracteres debe ser de al menos 9 caracteres. Debe tener al menos un número y al menos un alfabeto.

Entonces, cadenas como contraseña12, 12PASSWORD, pass12word, 12pasSWord12, pas12pas12pas12!!@@, etc., todas deben ser aceptadas por la expresión regular.

Actualmente he intentado usar la búsqueda anticipada como la siguiente expresión que funciona bien en otros módulos de validación de expresiones regulares, pero giVe un error en la expresión regular del formulario de Google. Por favor mira este ejemplo 1 ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,15}$

Intenté crear mi expresión regular usando una cláusula IF como la siguiente expresión. Nuevamente, esta expresión regular funciona bien en otras validaciones de expresiones regulares pero genera un error en el formulario de Google. Por favor vea este ejemplo 2 \A(?>(?<char>[a-zA-Z])|(?<dígitos>[0-9])|.){8,}?((?(char)(?( dígito)|(?!))|(?!)))

Ahora no puedo usar búsquedas anticipadas y tampoco puedo usar condiciones IF. Así que supongo que me quedo con una expresión regular sencilla y directa. Intenté crear varias expresiones regulares de este tipo, pero solo funcionan para tipos específicos de variaciones de contraseña. Por ejemplo, las siguientes expresiones regulares funcionan allí pero están incompletas:

(([0-9]+[a-zA-Z]*){9,}[a-zA-Z]+)|(([a-zA-Z]+[0-9]* ){9,}[0-2]+) => Esto solo validas cadenas como contraseña12 o 12contraseña ([a-zA-Z]*[0-9]*[a-zA-Z][0-9][a-zA-Z]*[0-9]*){9,} => Esto sólo valida p1p2p3p4p5p6p7

¿Puedes ayudarme a crear una expresión regular similar a las 2 expresiones regulares anteriores que satisfaga las dos condiciones requeridas (longitud>8 y al menos un alfabeto y un dígito)?

Agradecería cualquier ayuda que pueda obtener. ¡Gracias!



------------------------------------

Si pudieras establecer más de una condición en una entrada, podrías haber resuelto el problema:

Validar 2 condiciones en el campo de formularios de Google

Google Form proporciona una utilidad de secuencias de comandos (JavaScript) que permite a los creadores de formularios hacer más cosas. Pero sorprendentemente,Incluso usando scripts todavía no puedes lograr lo que deseas. Basado en "https://stackoverflow.com/questions/47009462/how-to-add-validation-to-existing-google-form-items-via-script", probé esto:

function validationTest() {
  var form = FormApp.getActiveForm();
  var items = form.getItems();
  var textValidation = FormApp.createTextValidation()
    .requireTextLengthGreaterThanOrEqualTo(9)
    .requireTextContainsPattern('[0-9]')
    .requireTextContainsPattern('[a-zA-Z]')
    .build();
  for (var i = 0; i<items.length; i++) {
    items[i].asTextItem().setValidation(textValidation);
  };
}

Pero sólo se aplica la última condición. También probé /^(?=.*[0-9])(?=.*[a-zA-Z]).{9,}$/g dentro del script, pero no tuve suerte.

También hay un problema similar en la página de soporte de Google que no tiene respuesta: https://support.google.com/docs/thread/15036083?hl=en

Finalmente encontré "Límite de opciones | Límite de formulario | Elección Eliminar Eliminación" que es un complemento pago y tiene una función "contiene RegEx". característica. Yo no lo he usado, pero espero que ayude.

1

Realmente espero que Google agregue pronto soporte completo para expresiones regulares. Puede resultar muy difícil resolver algunos problemas. ¡Gracias por tu aporte!

- Hammad

29 de marzo de 2021 a las 0:03



------------------------------------

Aparentemente no existe una solución sencilla para esto. Aquí tienes una solución que tiene en cuenta todas las posibles variaciones de la cuerda.

.*([A-Za-z][0-9]......|[A-Za-z].[0-9].....|[A-Za-z]..[0-9]....|[A-Za-z]...[0-9]...|[A-Za-z]. ...[0-9]..|[A-Za-z].....[0-9].|[A-Za-z]......[0-9]|[ 0-9][A-Za-z]......|[0-9].[A-Za-z].....|[0-9]..[A-Za-z]. ]....|[0-9]...[A-Za-z]...|[0-9]....[A-Za-z]..|[0-9]. ....[A-Za-z].|[0-9]......[A-Za-z]|.[A-Za-z][0-9]..... |.[A-Za-z].[0-9]....|.[A-Za-z]..[0-9]...|.[A-Za-z]... [0-9]..|.[A-Za-z]....[0-9].|.[A-Za-z].....[0-9]|.[0- 9][A-Za-z].....|.[0-9].[A-Za-z]....|.[0-9]..[A-Za-z]. ..|.[0-9]...[A-Za-z]..|.[0-9]....[A-Za-z].|.[0-9]... ..[A-Za-z]|..[A-Za-z][0-9]....|..[A-Za-z].[0-9]...|.. [A-Za-z]..[0-9]..|..[A-Za-z]...[0-9].|..[A-Za-z]....[ 0-9]|..[0-9][A-Za-z]....|..[0-9].[A-Za-z]...|..[0-9] ..[A-Za-z]..|..[0-9]...[A-Za-z].|..[0-9]....[A-Za-z]| ...[A-Za-z][0-9]...|...[A-Za-z].[0-9]..|...[A-Za-z].. [0-9].|...[A-Za-z]...[0-9]|...[0-9][A-Za-z]...|...[0 -9].[A-Za-z]..|...[0-9]..[A-Za-z].|...[0-9]...[A-Za-z]|....[A-Za -z][0-9]..|....[A-Za-z].[0-9].|....[A-Za-z]..[0-9]|. ...[0-9][A-Za-z]..|....[0-9].[A-Za-z].|....[0-9]..[A -Za-z]|.....[A-Za-z][0-9].|.....[A-Za-z].[0-9]|.....[ 0-9][A-Za-z].|.......[0-9].[A-Za-z]|......[A-Za-z][0-9] |......[0-9][A-Za-z]).*

Visite esto para probarlo: https://regexr.com/5pimr

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare