Вам, вероятно, понадобится следующее:
text = text.replace(/\[[^\]]*[^0-9\]][^\]]*\]/gi, "");
Объяснение: вы хотите сохранить последовательности в скобках, которые содержат только чисел.Альтернативный способ сказать это - удалить те последовательности, которые 1) заключены в квадратные скобки, 2) не содержат закрывающей скобки и 3) содержат по крайней мере один нечисловой символ.Приведенное выше регулярное выражение соответствует открывающей скобке (\[
), за которой следует произвольная последовательность символов, кроме закрывающей скобки ([^\]]
, обратите внимание, что закрывающую скобку нужно было экранировать), затем нечисловой символ (также исключаязакрывающая скобка), затем произвольная последовательность символов, кроме закрывающей скобки, затем закрывающая скобка.