En mi código Javascript, esta expresión regular /(?<=\/)([^#]+)(?=#*)/ funciona bien en Chrome, pero en Safari obtengo:
Expresión regular no válida: nombre de especificador de grupo no válido
¿Algunas ideas?
Parece que Safari aún no es compatible con lookbehind (es decir, su (?<=\/) ). Una alternativa sería poner el / que viene antes en un grupo no capturado y luego extraer solo el primer grupo (el contenido después de / y antes de # ).
/(?:\/)([^#]+)(?=#*)/ Además, (?=#*) es extraño: probablemente desee buscar algo (como # o el final de la cadena), en lugar de un cuantificador * ( cero o más apariciones de # ). Podría ser mejor usar algo como
/(?:\/)([^#]+)(?=#|$)/ o simplemente omita la anticipación por completo (porque ([^#]+) es codicioso), según sus circunstancias.