var u = location.href; if (u.search(/[^0-9A-Z]([B0-9][0-9A-Z]{9})([^0-9A-Z]|$)/) !=- 1) { var asin = RegExp.$1; ここで何かをする。 }
var u = location.href; if (u.search(/[^0-9A-Z]([B0-9][0-9A-Z]{9})([^0-9A-Z]|$)/) != -1) { var asin = RegExp.$1; location.href = 'https://www.amazon.co.jp/dp/' + asin; }
javascript:(function(){if(location.href.search(/[^0-9A-Z]([B0-9][0-9A-Z]{9})([^0-9A-Z]|$)/)!=-1){location.href='https://www.amazon.co.jp/dp/'+RegExp.$1;}})();
var u = location.href; if (u.search(/[^0-9A-Z]([B0-9][0-9A-Z]{9})([^0-9A-Z]|$)/) != -1) { var asin = RegExp.$1; location.href = 'https://www.amazon.co.jp/exec/obidos/ASIN/' + asin + '/yto-22'; }
javascript:(function(){if(location.href.search(/[^0-9A-Z]([B0-9][0-9A-Z]{9})([^0-9A-Z]|$)/)!=-1){location.href='https://www.amazon.co.jp/exec/obidos/ASIN/'+RegExp.$1+'/yto-22';}})();
URL から取るより確かにこの方法だと誤りなくASINが取得できるのですが、同じアマゾンの商品ページでもカスタマーレビューページ(http://www.amazon.co.jp/review/product/4569702791)などでは id="ASIN" がなかったりするので、使えないのです。
document.getElementById('ASIN').getAttribute('value')
とかの方が良くないです?