Autor | Zpráva | ||
---|---|---|---|
snazimse Profil |
Zdravím,
narazil ,jsem na takovu funkci v jquery, která je součástí xml seo přepisovače url.Nějak tomu nerozumím, vrtá mi to hlavou. Potřeboval, bych objasnit co to dělá.Konkrétně jde o proměnné from a to.Co to je za znaky? Jaký to má smysl? Takové divné , to je. Jestli hádám to jako má odstraňovat tyto netypické znaky a proč zrovna tyhle, pak nevím ,proč to není uděláno nějak přes regulární výrazy. Co si o to myslíte? Fakt to nějak nechápu. Děkuji vám! <![CDATA[ <script type="text/javascript"> $(document).ready(function(){ var keyword = $("input[name=keyword]"); if(!keyword.val()) { $("input[name^='product_description'],input[name^='category_description'],input[name='name'],input[name^='information_description'],input[name^='model']").keyup(function() { var SEOlink = $("input[name^='product_description'],input[name^='category_description'],input[name='name'],input[name^='information_description']").val(); // var SEOlink = $(this).val(); SEOlink = SEOlink.replace(/^\s+|\s+$/g, ''); // trim SEOlink = SEOlink.toLowerCase(); // remove accents, swap, etc var from = "ảãạàáäâấầậẩẫẻẹẽèéëêềếệểễăắằẳẵặìíïîịơởỡợờớọõỏòóöôốộồổỗđưứừựửữùúüûủụùúũñcçčlľštžýnrrdçõã·/_,:;"; var to = "aaaaaaaaaaaaeeeeeeeeeeeeaaaaaaiiiiiooooooooooooooooooduuuuuuuuuuuuuuuncccllstzynrrdcoa------"; for (var i=0, l=from.length ; i<l ; i++) { SEOlink = SEOlink.replace(new RegExp(from.charAt(i), 'g'), to.charAt(i)); } SEOlink = SEOlink.replace(/[^a-z0-9( -]/g, '') // remove invalid chars .replace(/\(/g,"-") // replace ( .replace(/\s+/g, '-') // collapse whitespace and replace by - .replace(/-+/g, '-'); // collapse dashes // return SEOlink; // model if ($("input[name^='model']").length){ var model = $("input[name^='model']").val(); model = model.replace('.html'); // trim model = model.toLowerCase(); for (var i=0, l=from.length ; i<l ; i++) { model = model.replace('.html'); } model = model.replace(/[^a-z0-9 -]/g, '') // remove invalid chars .replace(/\s+/g, '-') // collapse whitespace and replace by - .replace(/-+/g, '-'); // collapse dashes // return model; } // end model if (model) { keyword.val(SEOlink+'.html'); } else { keyword.val(SEOlink+'.html'); } }); } }); </script> ]]> |
||
tiso Profil |
#2 · Zasláno: 14. 2. 2015, 23:40:04
Čuduj sa svete, ono to používa regulárne výrazy. Slúži to na vytvorenie url-friendly stringu, neviem do ktorých jazykov tieto znaky patria, ale chýbajú tam niektoré slovenské.
|
||
snazimse Profil |
#3 · Zasláno: 15. 2. 2015, 01:30:57
tiso:
Mě jde právě o ty znaky, proč zrovna tyhle, to potřebuji, aby mi to někdo vysvětlil. A jestli to jde udělat, nějak elegantněji. |
||
snazimse Profil |
#4 · Zasláno: 16. 2. 2015, 14:48:10
Pomohl by mi někdo to objasnit?
Děkuji Vám! |
||
aDAm Profil |
a co tahle si to zkusit sám rozklíčovat? Jednoduše to poslouhá na eventech keyup na vybraných formulářových elementech a pak to vložený string předělá na prý "seo" link
A odstraňuje to ty vypsané znaky aby výsledek byl použitelný v URL adrese. |
||
Kcko Profil |
#6 · Zasláno: 16. 2. 2015, 15:25:23
if (model) { keyword.val(SEOlink+'.html'); } else { keyword.val(SEOlink+'.html'); } Na co je taková podmínka? ;-) Místo tohohle bazmektu bych použil spíše toto http://php.vrana.cz/vytvoreni-pratelskeho-url.php |
||
snazimse Profil |
#7 · Zasláno: 16. 2. 2015, 15:52:58
aDAm, Kcko:
Děkuji vám, moc za reakci. No já jsem na to narazil a tak mi to trochu vrtalo jako jasně, že vím, že to dělá seo url, ale ty znaky, jako nevím, většinou se to dělá přes mod_rewrite pomocí regulárních výrazů a jako spíše mi jde o to proč, zrovna takhle a zrovna tyhle znaky. Tady třeba, v proměnné to , se některé znaky opakujou několikrát, to nechápu proč. var to = "aaaaaaaaaaaaeeeeeeeeeeeeaaaaaaiiiiiooooooooooooooooooduuuuuuuuuuuuuuuncccllstzynrrdcoa------"; To mě zajímá. Přijde mi to takové prasácké , no děkuji za názorný příklad od Jakuba Vrány! |
||
anonymníí Profil * |
#8 · Zasláno: 16. 2. 2015, 16:09:19
snazimse:
Nahrazuje to sadu odlišných znaků z "from", vždy kus za kus. Pokud je ve "from" 50 znaků, musí být v "to" také 50. Napříkad sekvence ìíïîị je pět různě diakritických "íček" na vstupu, na výstupu se mají převést na i . Proto je v proměnné to sekvence iiiii . Na stejných pozicích, jako jsou v předchozí proměnné ty diakritické.
|
||
snazimse Profil |
#9 · Zasláno: 16. 2. 2015, 17:40:02
anonymníí:
Ok, děkuji za vysvětlení, to jsem nějak přehlédl a nepochopil. |
||
Časová prodleva: 10 let
|
0