очистите ASIN от URL амазонки с помощью JavaScript

set l = index of left most character in word
set r = index of right most character in word

loop while(l < r)
begin
  if letter at l does not equal letter at r
    word is not palindrome
  else
     increase l and decrease r
end
word is palindrome
15
задан Charles Stewart 2 January 2010 в 08:21
поделиться

5 ответов

Страницы с подробными сведениями об Amazon могут иметь несколько форм, поэтому вам следует проверить их все. Все они эквивалентны:

http://www.amazon.com/Kindle-Wireless-Reading-Display-Generation/dp/B0015T963C
http://www.amazon.com/dp/B0015T963C
http://www.amazon.com/gp/product/B0015T963C
http://www.amazon.com/gp/product/glance/B0015T963C

Они всегда выглядят так или так:

http://www.amazon.com/<SEO STRING>/dp/<VIEW>/ASIN
http://www.amazon.com/gp/product/<VIEW>/ASIN

Это должно сделать это:

var url = "http://www.amazon.com/Kindle-Wireless-Reading-Display-Generation/dp/B0015T963C";
var regex = RegExp("http://www.amazon.com/([\\w-]+/)?(dp|gp/product)/(\\w+/)?(\\w{10})");
m = url.match(regex);
if (m) { 
    alert("ASIN=" + m[4]);
}
20
ответ дан 1 December 2019 в 00:08
поделиться

Поскольку ASIN всегда представляет собой последовательность из 10 букв и / или цифр сразу после косой черты, попробуйте следующее:

url.match("/([a-zA-Z0-9]{10})(?:[/?]|$)")

Дополнительный (?: [/?] | $) после ASIN должен гарантировать, что используется только полный сегмент пути.

21
ответ дан 1 December 2019 в 00:08
поделиться

что-то вроде этого должно работать (не тестировалось)

var match = /\/dp\/(.*?)\/ref=amb_link/.exec(amazon_url);
var asin = match ? match[1] : '';
0
ответ дан 1 December 2019 в 00:08
поделиться

Если ASIN всегда находится в этой позиции в URL:

var asin= decodeURIComponent(url.split('/')[5]);

хотя вероятность того, что ASIN получит% -экранировано.

-2
ответ дан 1 December 2019 в 00:08
поделиться

Статья в Википедии об ASIN (на который я ссылался в вашем вопросе) дает различные формы URL-адресов Amazon. Вы можете довольно легко создать регулярное выражение (или их серию) для получения этих данных, используя метод match () .

0
ответ дан 1 December 2019 в 00:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: