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

124
Vistas
Regex pattern to not to include zeros

I need to match a pattern for validation . I want to match a decimal number where numeric part can have upto 14 digits including + or - without 0 and after decimal has upto 4 digits. Valid patterns are :

+1.23
9857.6543
-745290.0

Invalid patterns are:

 0
 0.00
 1.23456

I have tried ^[0-9]{0,14}\.[0-9]{0,4}$. I am not getting how to match for +,- and 0 condition

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

0

Short answer: ^[+-]?[1-9][0-9]{0,13}\.[0-9]{1,4}$


^ - start of string

[+-]? optionally, one between + and -

[1-9][0-9]{0,13} - a 14 digit number that doesn't start with 0

\. - decimal separator, has to be escaped or it will mean "any one character"

[0-9]{1,4} - up to 4 decimal digits

$ - end of string

about 4 years ago · Juan Pablo Isaza Denunciar

0

The pattern:

^[+-]?[^\D0]\d{0,13}\.\d{1,4}(?!\d)

matches the first 3 but not the second 3. [^\D0] is, if I'm not mistaken, strictly the same as [123456789], but slightly more compact.

about 4 years ago · Juan Pablo Isaza Denunciar

0

This might work ^(\+|-)?(([1-9]|0(?=0*[1-9]))[0-9]{0,13}(\.[0-9]{1,4})?|0{1,14}\.(?=0*[1-9])[0-9]{1,4})$

  • ^(\+|-)? - starts with +/-
  • (
  • ([1-9]|0(?=0*[1-9]))[0-9]{0,13}(\.[0-9]{1,4})? - absolute value >= 1
  • | - or
  • 0{1,14}\.(?=0*[1-9])[0-9]{1,4} - 0.**** with at least 1 non-zero digit
  • )
  • $ - end

const testcases = [
    '+1.23', 
    '9857.6543', 
    '-745290.0', 
    '1.0', 
    '1.00', 
    '12', 
    '0.01', 
    '+001.01', 
    '0', 
    '0.00', 
    '1.23456', 
    '0.0', 
    '12.'];
 
const regex = /^(\+|-)?(([1-9]|0(?=0*[1-9]))[0-9]{0,13}(\.[0-9]{1,4})?|0{1,14}\.(?=0*[1-9])[0-9]{1,4})$/;

testcases.forEach(n => console.log(`${n}\t - ${regex.test(n)}`));

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