2012-09-10 4 views
0

J'essaie de créer des liens lorsqu'un utilisateur écrit quelque chose dans les balises. Mais le problème est que je ne peux pas convertir le jeu de caractères. comme ş = s, ð = g ... Ici mon codeCréer un lien entre certaines balises

$(document).ready(function() { 
    $('em').html(function(i, linkle) { 

var returnString = linkle.toLowerCase(); 
//Convert Characters 
returnString = returnString.replace(/ö/g, 'o'); 
returnString = returnString.replace(/ç/g, 'c'); 
returnString = returnString.replace(/ş/g, 's'); 
returnString = returnString.replace(/ı/g, 'i'); 
returnString = returnString.replace(/ğ/g, 'g'); 
returnString = returnString.replace(/ü/g, 'u'); 

// if there are other invalid chars, convert them into blank spaces 
returnString = returnString.replace(/[^a-z0-9\s-]/g, ""); 
// convert multiple spaces and hyphens into one space  
returnString = returnString.replace(/[\s-]+/g, " "); 
// trims current string 
returnString = returnString.replace(/^\s+|\s+$/g,""); 
// cuts string (if too long) 
if(returnString.length > maxLength) 
returnString = returnString.substring(0,maxLength); 
// add hyphens 
returnString = returnString.replace(/\s/g, "-");  

return '<a href="/' + linkle + '/">' + linkle + '</a>'; 
}); 
}); 

Comment puis-je convertir des caractères et créer mes liens. Enfin, je veux que si le premier et le dernier caractère est vide, effacez-le ... Ty.

Répondre

0

La fonction jquery html() attend une chaîne mais vous fournissez une fonction, vous devez déplacer la fonction hors de l'appel html et transmettre sa valeur de retour à la place. En outre, vous ne l'utilisez pas réellement la variable returnString lorsque vous construisez votre lien, je pense que la déclaration de retour devrait lire:

return '<a href="/' + returnString + '/">' + returnString + '</a>'; 

Vous pouvez également envisager simplement en utilisant encodeURI plutôt que de remplacer les caractères manuellement - ce convertira le caractères non valides de sorte que sont sans danger pour une utilisation dans une URL.

+0

ty tellement je l'ai fait avec votre conseiller –

Questions connexes