Условие nr != ''
является избыточным, поскольку сравнения длины уже исключают длину нуля.
Таким образом, если сравнить длины вне пути, похоже, что вы дошли до простого класса символовцифры, пробелы и тире:
/[\d\s-]{5,20}/
Конечно, это допускает такие вещи, как ----- или несколько пробелов.Поэтому, возможно, вы захотите сначала удалить все, что является , а не цифрой, а затем просто проверьте
/\d{5,20}/
, что, вероятно, будет проще.