Outlook контекстный надстройка не может найти знак плюс с регулярным выражением - PullRequest
2 голосов
/ 02 апреля 2020

Мое правило выглядит следующим образом

<ExtensionPoint xsi:type="DetectedEntity">
  <Label resid="contextLabel" />
  <SourceLocation resid="testResId" />
  <Rule xsi:type="RuleCollection" Mode="And">
    <Rule xsi:type="RuleCollection" Mode="Or">
      <Rule xsi:type="ItemIs" ItemType="Message" />
      <Rule xsi:type="ItemIs" ItemType="Appointment" />
    </Rule>
    <Rule xsi:type="ItemHasRegularExpressionMatch" RegExName="Test" RegExValue="\+1" PropertyName="BodyAsPlaintext" Highlight="All"/>
  </Rule>
</ExtensionPoint>

, поскольку вы можете видеть, что регулярное выражение ищет +1 для выделения (мое реальное регулярное выражение делает больше, но этого примера достаточно, чтобы воспроизвести проблему )

Похоже, что поиск работает, так как он возвращает результаты, но я вижу ошибки в консоли разработчика и выделения не происходит. Я предполагаю, что Outlook использует фактические совпадения для выделения и помещения их в новое регулярное выражение (которое на самом деле не может начинаться со знака плюс). Исключение составляет:

constants.ts:1 Uncaught (in promise) SyntaxError: Invalid regular expression: /+1/: Nothing to repeat
    at new RegExp (<anonymous>)
    at constants.ts:1
    at Array.forEach (<anonymous>)
    at markElements.ts:54
    at AAQkADAzYTZlYTYyLWQyMGMtNDFhOS05MTAzLTQyYjJhNjBhMTYwZgAQAINoPf%2BPCdhNj6AVUpiXz4w%3D:347
    at Object.next (AAQkADAzYTZlYTYyLWQyMGMtNDFhOS05MTAzLTQyYjJhNjBhMTYwZgAQAINoPf%2BPCdhNj6AVUpiXz4w%3D:347)
    at a (AAQkADAzYTZlYTYyLWQyMGMtNDFhOS05MTAzLTQyYjJhNjBhMTYwZgAQAINoPf%2BPCdhNj6AVUpiXz4w%3D:347)

Я не нашел никакой документации на сайтах разработки надстроек Office, если / как я должен избежать этого. Есть идеи?

1 Ответ

0 голосов
/ 07 апреля 2020

ИМХО, похоже, это ошибка в панели чтения Outlook. Кажется, что он передает содержимое, найденное регулярным выражением в манифесте, другому регулярному выражению, которое отвечает за выделение совпадений в области чтения (используя метку js) в качестве шаблона регулярного выражения. Вот что я вижу в файле markElements.ts, а keyword - это строка, найденная в теле письма:

markElements.ts

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