某天看到 Othree 寫了個 short-amazon 來縮短 Amazon 網址,我依樣葫蘆地試用 regular expression 的方式做一次:
function convert(){ var output = parseUrl(document.getElementById("input").value); document.getElementById('output').value = output; } var parseUrl = function(input){ if(!input) return ''; var lines = input.split('\n'); var re = /^(http:\/\/www\.amazon\.[\w\.]{2,6}).*(\/(dp|gp\/product)\/[A-z0-9]*)(\/|\?).*/; var result = ''; for(var i in lines){ var l = lines[i]; if(re.test(l)){ l = l.replace(re,'$1$2'); } result += l + '\n'; } return result; } document.getElementById('output').onfocus = function () {this.select();}; document.getElementById('input').onkeyup = document.getElementById('input').onblur = document.getElementById('input').onchange = convert;
當然,用 regular expression 的缺點就是沒有那麼好讀。
這原本是寫在 JS Bin (很方便!),但因為 JS Bin 會定期做 house keeping,所以特此記下。

發表回應