Создайте ссылку между некоторыми тегами
Я пытаюсь создавать ссылки, когда пользователь пишет что-то в тегах. Но проблема в том, что я не могу преобразовать кодировку. как ş = s, ğ = g ... Вот мой код
$(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>';
});
});
Как я могу конвертировать символы и строить свои ссылки. Наконец, я хочу, чтобы первый и последний символы были пустыми.
1 ответ
Jquery html()
функция ожидает строку, но вы предоставляете функцию, вы должны переместить функцию из html
вместо этого вызовите и передайте возвращаемое значение. Кроме того, вы на самом деле не используете returnString
переменная, когда вы строите свою ссылку, я думаю, что выражение return должно выглядеть так:
return '<a href="/' + returnString + '/">' + returnString + '</a>';
Вы также можете рассмотреть возможность использования encodeURI вместо замены символов вручную - это преобразует недопустимые символы в безопасные для использования в URL.