Я использую следующее регулярное выражение в своем коде для проверки символов опций:
^([A-Za-z]{1,5}\d? +\b(?<=^.{6}))[0-9]{6}[CcPp][0-9]{8}$
Если вы заметили, я использую отрицательное утверждение с поиском за спиной, чтобы подтвердить, что в предыдущем совпадении было всего 6 символов.
Однако JScript Regex, по-видимому, не поддерживает lookbehinds, но поддерживает lookahead.
Итак, я подумал, что если я сделаю что-то вроде:
^((?=^.{6})[A-Za-z]{1,5}\d? +\b)[0-9]{6}[CcPp][0-9]{8}$
Thisбудет работать.
Однако, похоже, это не будет ограничивать его таким же образом.В первом примере было полезно сказать, что «совпадение позади меня составляет 6 символов».Однако теперь, когда это предвидение, это не работает, потому что будет сопоставлено 6 символов, даже если он не входит в эту первую группу.
Некоторые примеры тестовых случаев, с которыми я работаю:
Should fail:
1GOOG 12E456C12345678
GOOG 12E456C12345678
GE 4 12E456C12345678
GE4 12E456C12345678
Should pass:
GOOG1 123456C12345678
F5 123456C12345678
Как я могу успешно преобразовать этот взгляд назад в взгляд, чтобы я мог использовать это выражение в javascript?