Проверка на содержание слова в url

176
14 апреля 2018, 19:58

У меня есть две ссылки на страницы, на одной из которых надо показать картинку, а на другой наоборот не показывать.

http://test_url/products - показать изображение.
http://test_url/product - не показывать.

Проверяю вот таким условием:

if (window.location.pathname.indexOf('/product') === -1) {
      $('.img').show();     
   }

В этом условии если индекс строки '/product' равен -1, то картинку я не показываю. Но как в этом условии показать изображение если урл содержит /products?

Answer 1
if (window.location.pathname.indexOf('/product') === -1 || 
  window.location.pathname.indexOf('/products') != -1) {
  ...
Answer 2

Обратите условие

if (window.location.pathname.indexOf('/products') !== -1) {
  $('.img').show();     
}
Answer 3

Еще можно регуляркой. Это значительно медленнее чем indexOf(), но как еще один возможный вариант (и как предостережение не использовать его) - думаю, стоит упомянуть.

const arr = [ 'http://test_url/product', 'http://test_url/products', 'http://test_url/product?foo', 'http://test_url/product/?bar', 'http://test_url/products/?baz']; 
 
for (let show, i = 0; i < arr.length; i++) { 
  show = (/\/products(?:$|[/?])/i).test(arr[i]);  // или, что еще ужаснее, = !!arr[i].match(/\/product(s)?(?:$|[/?])/i)[1] 
  console.log(`${arr[i]} - ${show ? 'показывать' : 'не показывать'}`); 
}

READ ALSO
SyntaxError: Unexpected token . [Gulp]

SyntaxError: Unexpected token . [Gulp]

Пишу простенькое приложение на Electronjs

189
Перезапуск SVG анимации через удаление animateTransform

Перезапуск SVG анимации через удаление animateTransform

Всем приветВозникла проблема с svg анимацией

215
Ошибка при компиляции приложения Electron.js

Ошибка при компиляции приложения Electron.js

Сделал для примера простенькое electronjs приложение

175
Получить значение, взятое из input

Получить значение, взятое из input

Как получить текст из поля input? В моём случае выдаёт пустую строку

185