Quiero validar un texto personalizado ingresado en el cuadro de texto utilizando expresiones regulares. He buscado y encontrado algunas de las cosas, pero eso no me está ayudando a cumplir con mis requisitos y tampoco estoy muy familiarizado con javascript, así que publico aquí.

Mi texto personalizado se parece a mandatory 8 digit numeric then 1 hyphen then at max 2 digit numeric

e.g 12345678-12

Pero el problema es que debería aceptar varios textos como el anterior. Lo que significa que el texto puede tener el siguiente formato:

- 12345678-1
- 56543434-91,12349098-4
- 50908909-10,11234568-5
- 50908909-1,11234568-5,0000000-12
and so on.......

Cualquier sugerencia valiosa será muy apreciada.

-1
Tufan Chand 9 feb. 2017 a las 18:18

2 respuestas

La mejor respuesta
/(\d{8}-\d{1,2}|,)+/gm

Aquí hay una demostración -> https://regex101.com/r/p6D5rg/2

1
Vladu Ionut 9 feb. 2017 a las 15:30

Puede usar la opción / g para hacer coincidir cada coincidencia y la opción / m para hacerlas coincidir en varias líneas. Algo como esto debería funcionar:

var str = "50908909-1,11234568-5,00000000-12";
var coincidences = str.match(/(\d{8}-\d{1,2})/mg);

Donde str.match obtiene las coincidencias de los códigos (8 dígitos) - (1 o 2 dígitos)

Y, como estamos usando las opciones / mg, también coincidirá con esto:

` 12345678-1
- 56543434-91,12349098-4
- 50908909-10,11234568-5
- 50908909-1,11234568-5,00000000-12`.match(/(\d{8}-\d{1,2})/mg);
0
PRDeving 9 feb. 2017 a las 15:23