Estoy moviendo un blog grande de WordPress a otra plataforma y estoy tratando de volver a crear códigos cortos de WordPress con Javascript. Pude escribir Regex para reemplazar los códigos abreviados de [youtube] sin problemas, pero tengo problemas con los de [soundcloud] .
El formato del shortcode es el siguiente:
[soundcloud url=”http://api.soundcloud.com/tracks/33660734”]
Creé la siguiente regla Regex, que parece funcionar en Regex 101
\[soundcloud url="http(s?):\/\/api\.soundcloud\.com\/tracks\/([a-zA-Z0-9]*)"(\s*?)\] https ://regex101.com/r/JKL45q/2
Pero cuando lo incluyo en mi script:
{ service: 'soundcloud', regex: new RegExp('\[soundcloud url="http(s?):\/\/api\.soundcloud\.com\/tracks\/([a-zA-Z0-9]*)"(\s*?)\]', 'ig'), },Me sale este error, que no puedo entender:
main.js:29 Uncaught SyntaxError: Invalid regular expression: /[soundcloud url="http(s?)://api.soundcloud.com/tracks/([a-zA-Z0-9]*)"(s*?)]/: Unmatched ')' (at main.js:29:14) at new RegExp (<anonymous>) at main.js:29:14 at main.js:142:3 El script fuente está aquí:
https://hotmc.pages.dev/assets/js/main.js
Esta es una página donde se presenta el error en la consola:
https://hotmc.pages.dev/2011/01/10/esclusivo-anteprima-album-micha-soul-un-brano-en-descarga-gratis
¿Alguien puede ayudar? Encontré otras preguntas sobre este error, pero no he podido aplicar las correcciones sugeridas.
Gracias de antemano, S.
Creo que puedes quitar el () del ([a-zA-Z0-9]*)
new RegExp('[soundcloud url="http(s?):\/\/api\.soundcloud\.com\/tracks\/[a-zA-Z0-9]*"(\s*?)]', 'ig').test(`[soundcloud url="http://api.soundcloud.com/tracks/33660734"]`)Pude deshacerme del error cambiando en caliente el objeto RegExp se inicializa.
De esto:
new RegExp('\[soundcloud url="http(s?):\/\/api\.soundcloud\.com\/tracks\/([a-zA-Z0-9]*)"(\s*?)\]', 'ig')
A esto:
new RegExp(/\[soundcloud url="http(s?):\/\/api\.soundcloud\.com\/tracks\/([a-zA-Z0-9]*)"(\s*?)\]/, 'ig')