Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

200
Visualizações
JavaScript RegEx Negative Lookbehind sin hacer un Negative Lookbehind en SuiteScript 2.x

He creado una función en un módulo personalizado para tratar de hacer un formato de fecha/hora usando las plantillas presentadas por NetSuite de las preferencias de la empresa. Sin embargo, tuve algunos problemas al manejar el nombre completo del mes y la hora en formato de 12 horas. Si uso un lookbehind negativo, funciona bien, pero el problema es que solo funciona en scripts que usan 2.1, y hay demasiados en 2.0 para actualizar todo lo que necesita esta función de 2.0 a 2.1.

Por ejemplo, estas plantillas de tiempo particulares:

 Month D, YYYY h:mm

El primero tendrá una salida adecuada como:

 February 11, 2022

Pero el segundo tendrá una salida errónea:

 h:15

Estoy usando el siguiente RegEx para que coincida con el marcador de posición de la hora:

 /^(?!nt)h/

Y sé que esto funciona mejor donde puedo usarlo:

 /(?<!nt)h/

Intenté buscar una forma de manejar la coincidencia de la "h" donde no está precedida por "nt", pero todos siguen señalando el uso de un lookbehinds negativo para manejarlo, o no están un poco claros en cuanto a exactamente cómo se está haciendo

EDITAR

Solo para reducir la confusión, los siguientes son formatos que también podrían pasarse a la función y deben manejarse correctamente:

 YYYY/DD/MM h:m:s MONTH DD, YYYY H-mm-ss YYYYDDMMhms YYYYDDMM-HHmmss

No hay una plantilla de fecha/hora específica que se pueda pasar, por lo que existe una necesidad específica de poder encontrar H/h sin que sea parte de la palabra 'Mes'.

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

En su lugar, puede usar un grupo de captura para capturar lo que desea conservar y hacer coincidir lo que desea eliminar.

El patrón coincide con el nth que no desea y captura un carácter h .

En el código, puede verificar si el grupo 1 está presente.

 nth|(h)

Demostración de expresiones regulares

Por ejemplo en Javascript

 const regex = /nth|(h)/gi; const str = `Month D, YYYY h:mm February 11, 2022 h:15 YYYY/DD/MM h:m:s MONTH DD, YYYY H-mm-ss YYYYDDMMhms YYYYDDMM-HHmmss`; const result = str.replace(regex, function(m, g1) { return g1 !== undefined ? "[" + g1 + "]" : m; }); console.log(result);

about 4 years ago · Juan Pablo Isaza Relatório

0

Puedes usar

 /h(?!(?<=\bMonth)\b)/gi

Vea la demostración de expresiones regulares . Detalles :

  • h - una letra h
  • (?!(?<=\bMonth)\b) - una búsqueda anticipada negativa que falla la coincidencia si inmediatamente a la izquierda de la ubicación actual hay una palabra Month completa.

Si no le importa si la palabra Month es una palabra completa, puede usar

 /h(?<!Month)/gi

Vea esta demostración de expresiones regulares .

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda