Первым делом из текста нужно исключить все специальные символы и сделать все 1 строкой.
Делается это 1 регуляркой
.replace(/[\W_]*/g,'')
далее мы должны искать в тексте числовые последовательности содержащие от 6 до 11 цифр.
'@$fr e+7(911)123-2131f_ () f23'.replace(/[\W_]*/g,'').replace(/[\w]*?([\d]{6,12})[\w]*/,"$1")
Это самый простой способ, конечно он не без минусов. Если после телефона будет идти цифра, тяжело разобраться в правильности номера. Но и это решается.
Я в своей системе заменяю по функции, и вывожу результат регулярки, рядом вывожу чистую подстроку в которой встречается телефон, по которой операторы могут глазами понять а тот ли это телефон и как он был записан.