Эффективное добавление правил - PullRequest
0 голосов
/ 20 июня 2020

В фоновом режиме. js Я использую правила, но я также много раз использую регулярное выражение. У меня есть declarativeContent.ShowPageAction на основе этих правил.

new chrome.declarativeContent.PageStateMatcher({pageUrl: { urlMatches: 'https?:\/\/([a-z0-9]+[.])*microsoft.com'},}),
new chrome.declarativeContent.PageStateMatcher({pageUrl: { urlMatches: 'https?:\/\/([a-z0-9]+[.])*google.com'},}),
new chrome.declarativeContent.PageStateMatcher({pageUrl: { urlMatches: 'https?:\/\/([a-z0-9]+[.])*amazon.com'},}),

Есть ли способ использовать регулярное выражение только один раз и использовать его, как в javascript

myRegexInstance.test(collectionOfURLs);

1 Ответ

1 голос
/ 21 июня 2020

Не используйте регулярное выражение. Они медленные, и вы дублируете работу, уже выполненную API: он уже разделил URL-адрес на части, которые вы можете протестировать отдельно.

Используйте hostSuffix:

[
  '.microsoft.com',
  '.google.com',
  '.amazon.com',
].map(s => new chrome.declarativeContent.PageStateMatcher({pageUrl: {hostSuffix: s}}))

Первая точка будет соответствовать как *://google.com/, так и любому субдомену, например *://www.google.com/

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