Tengo dos cadenas de muestra de código así:
"const x = anything;" "const {a, b, c, d} = anything;" Quiero hacer coincidir x , así como a , b , c y d (ninguno de los cuales es literal, pueden ser cualquier carácter de variable de JavaScript válido, pero están delimitados por comas) si están precedidos por la palabra clave const . Esta última es la sintaxis desestructurante.
Contexto: esto es para extender el resaltado de sintaxis de tokens de código en PrismJS.
Lo que he probado hasta ahora:
Prism.languages.insertBefore(lang, 'operator', { constant: { pattern: /(const\s?{?)[\s_$a-zA-Z\xA0-\uFFFF,]*(?!:)/, lookbehind: true, }, }); La coma está dentro de [] , y no estoy seguro de cómo "continuar" haciendo coincidir cada variable dentro de las llaves sin incluir el carácter de coma.
Prueba este patrón:
(?:const\s+{?\s*)[_$\w]+(?:[,}\s]) Intentaré mejorarlo reemplazando \w para que coincida con los identificadores que usan caracteres no alfanuméricos. Posiblemente:
(?:const\s+{?\s*)[_$\p{L}]+(?:[,}\s])