Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

116
Views
Cree una expresión regular para crear una matriz limpia a partir de una lista, fíltrela en función de la longitud de cada número y compruebe su validez (si la longitud es inferior a 4)

Cómo obtener una expresión regular que haga todo esto y devuelva un valor booleano como respuesta.

1: obtiene números separados por cualquier delimitador (espacio o cualquier carácter no numérico), 2: elimina todos los números de esa matriz de menos de 5 dígitos y crea una nueva matriz 3: da un resultado booleano como a si la nueva matriz tiene menos de 4 elementos (eso determina si es válida). 4: Si la cadena de entrada solo tiene caracteres, entonces la prueba de expresiones regulares debería pasar

 const goodlist = "111,256 323| 78987 & 65434 727272727"; // should be good
const badlist = "111256333 323666666a| 78987333333 & 6543 727272727";
let numberPattern = /\d+/g;
let numbersArr1 = goodlist.match(numberPattern);
let filArr1 = numbersArr1.filter((w) => w.length > 4);
let numbersArr2 = badlist.match(numberPattern);
let filArr2 = numbersArr2.filter((w) => w.length > 4);
console.log(numbersArr1, numbersArr2);
const isGoodListOK = filArr1.length < 4;
const isBadListOK = filArr2.length < 4;

document.getElementById("app").innerHTML = `
<div>Input string: ${goodlist}</div>
<br/>
<div>Formatted input: ${numbersArr1} : Filtered Array: ${filArr1}</div>
div>is this list ok: ${isGoodListOK}</div>
<br/>
<br/>

<br/>
<br/>

<div>Input string: ${badlist}</div>
<br/>
<div>Formatted input: ${numbersArr2} : Filtered Array: ${filArr2}</div>
<div>is this list ok: ${isBadListOK}</div>

Hice todo esto en javscript, pero me gustaría una sola expresión regular

https://codesandbox.io/s/simple-regex-to-check-date-format-forked-l1c6pl?file=/src/index.js

almost 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Puede usar un patrón único que afirme no 4 veces 4 o más dígitos y luego hacer coincidir al menos una sola ocurrencia.

 ^(?!(?:.*?\b\d{4,}\b){4}).+

Explicación

  • ^ Comienzo de cadena
  • (?! Anticipación negativa
    • (?: grupo de no captura
    • .*? Coincidir con cualquier personaje, la menor cantidad posible
    • \b\d{4,}\b Luego haga coincidir 4 o más dígitos entre los límites de las words
    • ){4} Cierre el grupo de no captura y repítalo 4 veces
  • ) Cerrar la búsqueda anticipada
  • .+ Haga coincidir hasta la primera aparición de 4 dígitos entre los límites de las words, o haga coincidir toda la línea que consta solo de espacios o caracteres A-Za-z

Demostración de expresiones regulares

 const goodlist = "111,256 323| 78987 & 65434 727272727"; // should be good
const badlist = "111256333 323666666a| 78987333333 & 6543 727272727";
const goodlist2 = 'Harry Potter'
const goodlist3 = '123 | 111 | 233 | 534'

const regex = /^(?!(?:.*?\b\d{4,}\b){4}).+/;

console.log(regex.test(goodlist));
console.log(regex.test(badlist));
console.log(regex.test(goodlist2));
console.log(regex.test(goodlist3));

almost 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!