Hola a continuación hay una serie de cadenas,
const arr = [ "list-domain/1/", "list-domain/1/list/1", "some-group/2/", "some-group/2/list/2", "list/3/", "list/3/item/1" ]; Quiero devolver verdadero si la cadena coincide con "list/1/" o "list-domain/2/list/2/" o "some-group/3/list/4" ; así que básicamente debería devolver verdadero si la cadena comienza con "list/1/" o tiene alguna cadena al frente y termina con "/lista/1/"
nota: aquí el número después de la barra oblicua puede ser cualquier número.
entonces, para la matriz anterior, el resultado esperado es verdadero.
const arr1 = [ "list-domain/1/", "list-domain/1/list/1", "some-group/2/", "some-group/2/list/2", ];para arr1 resultado esperado verdadero
const arr2 = [ "list-domain/1/", "list-domain/1/list/1/item/2", "some-group/2/", ];para arr2 la salida esperada es falsa.
He intentado algo como a continuación,
const foundMatch = arr.some(a=> new RegExp(/(\/list\/[0-9]+)?\/$/g).test(a));pero esto no funciona
Prueba esto:
arr.some(a=> new RegExp(/(^list\/\d\/)|(list\/\d\/$)/).test(a));Si eso es lo que quieres decir con:
Si la cadena comienza con " lista/1/ " o tiene alguna cadena delante y termina con " lista/1/ ".
¿Es esto lo que quieres tener?
arr.some(a=> new RegExp(/list\/[0-9](\/)?$/g).test(a));Su sobre todos los casos cumple con esta expresión regular. Si no, puedes poner otros casos de prueba.