Это означает, что вы пытаетесь манипулировать тем, что имеет ссылку, но еще не инициализировано. Первое, что нужно сделать, это проверить каждый созданный экземпляр. Используйте контрольные точки, часы, проверяйте свои значения varibale. Следить за трассировкой стека и искать точные строки и столбцы, которые создают проблему
Просто у вас есть негативный взгляд, чтобы отключить все 0s:
/^(?!0{6})[A-Z0-9][0-9]{5}$/
Что делать, если вы сначала проверили все случаи нулей, а затем, определив, что все нули применяют ваше регулярное выражение?
if ( NOT ALL ZEROS)
APPLY REGEX
Я бы сделал два прохода. Один с вашим первым регулярным выражением и один с новым регулярным выражением, который ищет все нули.
Я думаю, это будет сделано. Он проверяет не 000000 и ваше исходное регулярное выражение.
(?!0{6})^[A-Z0-9][0-9]{5}$
(?!000000)[A-Z0-9][0-9]{5}
, если lookahead в порядке.
Вы можете использовать отрицательный look_head (?!0+$)
, чтобы избежать совпадения строки, содержащей только 1 или более нулей:
/^(?!0+$)[A-Z0-9][0-9]{5}$/
^^^^^^^
См. демонстрацию regex . Этот подход позволяет вам просто скопировать / вставить lookahead после ^
и не беспокоиться о том, сколько символов соответствует потребляющей части.
Подробности
^
- начало строка (?!0+$)
- отрицательный результат, который не соответствует совпадению, если есть 1 или более символов 0
до конца строки ($
) [A-Z0-9]
- прописная буква ASCII или цифра [0-9]{5}
- пять цифр $
- конец строки.