Estoy enfrentando un problema extraño con Regex. Mi expresión funciona bien en https://regexr.com/3cr6f Pero cuando uso la misma expresión en mi código, comienza a fallar.
Esta es mi expresión:
^([a-zA-Z]+\\)+(Documents){1}\\{1}((CT([A-Za-z]){0,2})|(FE)|(FF))$Quiero probar esta expresión en mi cadena mecanografiada:
var case1='User\Folders\MyDocuments\CTTV'; var case2='User\Folders\MyDocuments\FE'; var case3='User\Folders\MyDocuments\FF';Pero siempre me devuelve nulo.
var regex = new RegExp(/^([a-zA-Z]+\\)+(Documents){1}\\{1}((CT([A-Za-z]){0,2})|(FE)|(FF))$/); regex.test(case1); //falsePodría ser que alguien más también haya enfrentado ese problema en Javascript mecanografiado.
Como se señaló en uno de los comentarios, las cadenas de prueba son MyDocuments pero su expresión regular tiene Documents . Si ajusta su expresión regular a esto:
^([a-zA-Z]+\\)+(MyDocuments){1}\\{1}((CT([A-Za-z]){0,2})|(FE)|(FF))$
Funciona bien
Entonces, la razón por la que no funciona en este momento es que está tratando de hacer coincidir la cadena myDocuments con Documents.
Para corregir su expresión regular, agregaría una coincidencia parcial para la expresión regular agregando .*? esto coincidirá con cualquier carácter posible.
^([a-zA-Z]+\\)+(.*?Documents.*?){1}\\{1}((CT([A-Za-z]){0,2})|(FE)|(FF))pero cambiaría su expresión regular todos juntos:
si no le importa la carpeta del documento, le sugiero:
^(.+)\\+((CT([A-Za-z]){0,2})|(FE)|(FF))$más puedes usar:
^(.+)\\+(.*?Documents.*?){1}\\((CT([A-Za-z]){0,2})|(FE)|(FF))$mira aquí:
Échale un vistazo": https://playcode.io/918676/
let case1=String.raw`User\Folders\MyDocuments\CTTV`, case2=String.raw`User\Folders\MyDocuments\FE`, case3=String.raw`User\Folders\MyDocuments\FF`, case4=String.raw`User\Folders\MyDocuments\False` let regex = new RegExp(/^([a-zA-Z]+\\)+(MyDocuments){1}\\{1}((CT([A-Za-z]){0,2})|(FE)|(FF))$/); console.log( regex.test(case1), regex.test(case2), regex.test(case3), regex.test(case4) )