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

210
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar

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 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