Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

398
Vistas
Expresión regular no válida, grupo no válido Javascript Regex

Tengo un código C# que verifica falseNumber en base a expresiones regulares:

 public bool falseNumber(string num) { try { num = num.Replace("-", ""); string re = @"(?x) ^ # fail if... (?! # repeating numbers (\d) \1+ $ | # sequential ascending (?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)|9(?=0)){5} \d $ | # sequential descending (?:0(?=9)|1(?=0)|2(?=1)|3(?=2)|4(?=3)|5(?=4)|6(?=5)|7(?=6)|8(?=7)|9(?=8)){5} \d $ ) # match any other combinations of 6 digits \d+ $ "; return Regex.IsMatch(num, re); } catch (Exception y) { return true; } }

Necesito que este código se convierta a JS, así que he escrito:

 const falseNumber = (num) => { num = num.replaceAll("-", ""); let re = /(?x)^(?!(\d)\1+$|(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)|9(?=0)){5}\d$|(?:0(?=9)|1(?=0)|2(?=1)|3(?=2)|4(?=3)|5(?=4)|6(?=5)|7(?=6)|8(?=7)|9(?=8)){5}\d$)\d+$/ return re.test(num); }

Pero eso me da error:

VM46:5 Error de sintaxis no capturado: expresión regular no válida: /((?x)^(?!(\d) \1+ $|(?:0(?=1)|1(?=2)|2(?= 3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)|9(?=0 )){5} \d $|(?:0(?=9)|1(?=0)|2(?=1)|3(?=2)|4(?=3)|5(? =4)|6(?=5)|7(?=6)|8(?=7)|9(?=8)){5} \d $)\d+$)/: Grupo no válido en falseNumber ( :5:12) a las :1:1

Cualquier ayuda sería muy apreciada.

Gracias.

 const falseNumber = (num) => { num = num.replaceAll("-", ""); let re = /(?x)^(?!(\d)\1+$|(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)|9(?=0)){5}\d$|(?:0(?=9)|1(?=0)|2(?=1)|3(?=2)|4(?=3)|5(?=4)|6(?=5)|7(?=6)|8(?=7)|9(?=8)){5}\d$)\d+$/ return re.test(num); } console.log(falseNumber('33-3333333-33'));

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

El modificador x no está integrado en JS, por eso aparece un error. Y en su caso, no necesita usar el modificador x porque no usa comentarios ni tiene espacios en blanco en su expresión regular en JS.

Definición del modificador x :

Esta bandera le dice al motor que ignore todos los espacios en blanco y permita comentarios en la expresión regular; también llamado verbo. Los comentarios se indican con un carácter inicial "#". Si necesita incluir un carácter de espacio en su expresión regular, ahora debe escapar '\'.

 const falseNumber = (num) => { num = num.replaceAll("-", ""); let re = /^(?!(\d)\1+$|(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)|9(?=0)){5}\d$|(?:0(?=9)|1(?=0)|2(?=1)|3(?=2)|4(?=3)|5(?=4)|6(?=5)|7(?=6)|8(?=7)|9(?=8)){5}\d$)\d+$/ return re.test(num); } console.log(falseNumber('33-3333333-33'));

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda