В javascript мы возвращаем строку с замененными символами. Если строка имеет ссылку, не нужно заменять символы для ссылки.Как декодировать ссылку из строки?
Для этого мы используем код:
function Html(text) {
var map = {
'&': '&',
'<': '<',
'>': '>',
'"': '"',
"'": '''
};
var end_text = text.replace(/[&<>"']/g, function(m) { return map[m]; });
console.log(end_text);
end_text = end_text.replace(/<a href="([\/a-zA-Z\s]+)"(\stitle="[a-zA-Z0-9\s-]+")?(\sclass="[a-zA-Z0-9\s-]*")?>([a-zA-Z\s-]+)<\/a>/g,'<a href="$1"$2$3>$4</a>');
//<a href="$1"$3>$4</a>
return end_text;
}
var str = '<a href="/homepage/test" title="go-go-go">go-go-go</a>';
console.log(Html(str));
В первом заменить символы в строке, и чем мы пытаемся расшифровать ссылку в строку. Но мы получаем проблему: мы получаем <a href="/homepage/test" title="go-go-go">go-go-go</a>
вместо <a href="/homepage/test" title="go-go-go">go-go-go</a>
.
Где ошибка и можно ли улучшить код?
. '/ [& <>" ']/'Замена. Может быть, замените после выполнения регулярного выражения href. – sln