В общем, при фильтрации пользовательского ввода плохая идея пытаться удалить все плохие символы, вам нужно оставлять только хорошие :) Так что вместо того, чтобы пытаться составить список плохих разделителей, просто отрицайте список символов, которым разрешено быть в числе.
value = value.replace("[^0-9.+-]", "");