Регулярное выражение, дающее неожиданный квантификатор по краю, но не хром - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть пара регулярных выражений, которые прекрасно работают в Chrome, но не в Edge или Internet Explorer.Выдает ошибку неожиданного квантификатора при отладке в браузере.Вход был 89 9 5 для этой ошибки.Любые идеи для этого?

var fps1 = new RegExp(
  "(?<Unit>[a-p])\\W*(?<Section>\\d+)\\W+(?<LatDegrees>\\d+)-(?<LatMinutes>\\d+)\\W+(?<LongDegrees>\\d+)-(?<LongMinutes>\\d+)");

var dls1 = new RegExp(
  "[/-](L[a-z]*)?\\W*(?<Lsd>\\d+)\\W*(S[a-z]*|\\W)\\W*(?<Section>\\d+)\\W*(T[a-z]*|\\W)\\W*(?<Township>\\d+)\\W*(R[a-z]*|\\W)\\W*(?<Range>\\d+)\\W*([WM][a-z]*|\\W)\\W*(?<Meridian>\\d)\\b");

var dls2 = new RegExp(
  "(L[a-z]*)?\\W*(?<Lsd>\\d+)\\W*(S[a-z]*|\\W)\\W*(?<Section>\\d+)\\W*(T[a-z]*|\\W)\\W*(?<Township>\\d+)\\W*(R[a-z]*|\\W)\\W*(?<Range>\\d+)\\W*([WM][a-z]*|\\W)\\W*(?<Meridian>\\d)\\b");

var dls3 = new RegExp(
  "(S[a-z]*)?\\W*(?<Section>\\d+)\\W*(T[a-z]*|\\W)\\W*(?<Township>\\d+)\\W*(R[a-z]*|\\W)\\W*(?<Range>\\d+)\\W*([WM][a-z]*|\\W)\\W*(?<Meridian>\\d)\\b");

var dls4 = new RegExp(
  "(T[a-z]*)?\\W*(?<Township>\\d+)\\W*(R[a-z]*|\\W)\\W*(?<Range>\\d+)\\W*([WM][a-z]*|\\W)\\W*(?<Meridian>\\d)\\b");

var nts1 = new RegExp(
  "(?<Quarter>[abcd])\\W+(?<Unit>\\d+)\\W+(?<Block>[abcdefghijkl])/(?<Sheet>\\d+)\\W+(?<Subdivision>[abcdefghijklmnop])\\W+(?<Sixteenth>\\d+)");

var nts2 = new RegExp(
  "(?<Unit>\\d+)\\W+(?<Block>[abcdefghijkl])/(?<Sheet>\\d+)\\W+(?<Subdivision>[abcdefghijklmnop])\\W+(?<Sixteenth>\\d+)");
var nts3 = new RegExp(
  "((?<Block>\\w)/)?(?<Sheet>\\d+)\\W+(?<Subdivision>[abcdefghijklmnop])\\W+(?<Sixteenth>\\d+)");

При прохождении через инструменты отладки Edge он не проходит после первого регулярного выражения, выполнение javascript просто останавливается, и ошибка в окне разработчика была просто неожиданным квантификатором и нетдругие подсказки.

1 Ответ

0 голосов
/ 26 февраля 2019

Проблема в том, что JavaScript не поддерживает именованные группы, за исключением случаев, когда они работают в Chrome.Чтобы это исправить, мне просто нужно было удалить весь синтаксис именованной группы.

Удалить ?<NAMED_GROUP>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...