Извлечение значения из хэша местоположения

#javascript #web #url

#javascript #веб #url

Вопрос:

Во внешнем коде Javascript мне нужно извлечь значение из параметра location hash . Например, URL-адрес выглядит так:

 https://mywebsite.com/certainpage#comment-12345
  

Здесь я хочу извлечь значение 12345 , которое указывает идентификатор комментария. В настоящее время я использую для этого следующий код:

 const match = window.location.hash.match(/-([0-9]*)/) || [];

if (!match[1]) return;

// Use match[1]
  

Если есть какой-либо оптимизированный и чистый способ справиться с этим, пожалуйста, дайте мне знать.

Ответ №1:

Если это всегда #comment-NUM , то вам даже не нужно использовать регулярное выражение.

 const match = window.location.hash.split("-") || [];
  

Затем будут применены те же проверки. Используйте match[1] в будущем. Причина String.split в том, что производительность лучше, чем String.match . Кроме того, он выглядит намного чище.

Комментарии:

1. Я также добавил свой собственный тестовый пример с вашим случаем: measurethat.net/Benchmarks/Show/10308/0/split-vs-match