в коде селектор $('a[href ^= "#"]') — ищет все элементы a атрибут href которых НАЧИНАЕТСЯ (^) с символа "#".
я же предложил использовать $('a[href *= "#"]') (вместо ^ стоит *) этим мы ищем все элементы <a> с атрибутом href
и чем это не регулярка?))) а?)))
селектор, селектор… Регулярка!)))