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

216
Views
¿Puede un video de YouTube estar compuesto solo de números? De ser así, ¿cómo hacer coincidir una cadena que no es solo números?

EDITAR: Recientemente descubrí (con la ayuda de algunos usuarios amables de Stack Overflow) que hay videos válidos de YouTube que son solo letras.

La misma pregunta que aquí pero con la adición de verificar letras en la ecuación .

Me preguntaba si es posible que las identificaciones de video de los videos de YouTube estén compuestas solo por números como este: 12345678901 . Estoy escribiendo una expresión para validar una cadena que es una identificación de video de YouTube. Aquí hay una versión simplificada de la expresión en acción (fuente aquí para una mayor depuración):

 const foo = /((http?(?:s)?:?\/\/)?(www\.)?)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?&v=))((?:\w|-){11})((?:\&|\?)\S*)?|(?:^(\w|-){11}$)|(?:\w|-){11}$/; let bar = "dQw4w9WgXcQ" // logs true console.log("is valid: " + foo.test(bar));

¿Es posible escribir una expresión regular que coincida con una cadena que no solo contenga números o letras ?

Criterios

Estos deberían funcionar:

  • abcdefghijk
  • ecK3EnyGD8o
  • 1s3get2-3ds
  • 4bc2qfs2wrf
  • 28yq389gfwg
  • 3oyh8pw489p

Pero estos no deberían:

  • abcdefghijk
  • 12345678910? (desconocido en este momento si YouTube admite ID de video que son solo números)
  • 18974107892351240891751928347819234
  • Desbordamiento de pila
  • kjsad;kflj;klasdfkjalk;sdfjlkas
  • ! &$@#)&& ()%&*(#@$&(
about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Usó una búsqueda anticipada negativa para verificar si no son todos los números, luego siguió una verificación si son todos los caracteres de palabras y un patrón de solo guiones.

 /^(?!\d+$)[\w\-]+$/ 

 let valids = [ 'abcdefghijk', 'ecK3EnyGD8o', '1s3get2-3ds', '4bc2qfs2wrf', '28yq389gfwg', '3oyh8pw489p' ]; let invalids = [ '12345678910', '18974107892351240891751928347819234', 'Stack Overflow', 'kjsad;kflj;klasdfkjalk;sdfjlkas', '!&$@#)&&()%&*(#@$&(' ]; let pattern = /^(?!\d+$)[\w\-]+$/; for (var i = 0; i < valids.length; i++) console.log(valids[i], pattern.test(valids[i])) for (var i = 0; i < invalids.length; i++) console.log(invalids[i], pattern.test(invalids[i]))

about 4 years ago · Juan Pablo Isaza Report

0

Usar

 ^[\d_-]*[a-zA-Z][-\w]*$

Ver prueba de expresiones regulares .

EXPLICACIÓN

parte de la expresión Que hace
^ el comienzo de la cadena
[\d_-]* cualquier carácter de: dígitos ( 0-9 ), _ , - (0 o más veces (coincidiendo con la mayor cantidad posible))
[a-zA-Z] cualquier caracter de: az , AZ
[-\w]* cualquier carácter de: - caracteres de palabras ( az , AZ , 0-9 , _ ) (0 o más veces (coincidiendo con la mayor cantidad posible))
$ antes de un \n opcional, y el final de la cadena

Código JavaScript :

 const oks = [ 'abcdefghijk', 'ecK3EnyGD8o', '1s3get2-3ds', '4bc2qfs2wrf', '28yq389gfwg', '3oyh8pw489p' ]; const nonoks = [ '12345678910', '18974107892351240891751928347819234', 'Stack Overflow', 'kjsad;kflj;klasdfkjalk;sdfjlkas', '!&$@#)&&()%&*(#@$&(' ]; const regex = /^[\d_-]*[a-zA-Z][-\w]*$/; for (const i of oks) console.log(i, regex.test(i)) for (const i of nonoks) console.log(i, regex.test(i))

about 4 years ago · Juan Pablo Isaza Report

0

Pruébate esto para ver el tamaño:

 const re = /[\w]*(\p{L}\d|\d\p{L})[\w]*/u; console.log("abcdefghijk".match( re ) || "Failed"); console.log("ecK3EnyGD8o".match( re ) || "Failed"); console.log("1s3get2-3ds".match( re ) || "Failed"); console.log("4bc2qfs2wrf".match( re ) || "Failed"); console.log("28yq389gfwg".match( re ) || "Failed"); console.log("3oyh8pw489p".match( re ) || "Failed"); console.log("12345678910".match( re ) || "Failed"); console.log("18974107892351240891751928347819234".match( re ) || "Failed"); console.log("Stack Overflow".match( re ) || "Failed"); console.log("kjsad;kflj;klasdfkjalk;sdfjlkas".match( re ) || "Failed"); console.log("!&$@#)&&()%&*(#@$&(".match( re ) || "Failed");

Querías que "abcdefghijk" fuera un caso fallido, ¿verdad? Solo contiene letras.

"1s3get2-3ds" fallará porque contiene un guión. Si desea considerar símbolos válidos, simplemente agréguelos a "[\w]", así para el guión: [-\w]

about 4 years ago · Juan Pablo Isaza 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!