есть строка в которой есть ссылки и хештеги. Нужно обернуть эти ссылки в тег <a href=""></a>
как и хештеги. Но не пойму почему с ссылкой не корректно работает и один хештег не находит который находится без пробела. Вот мой пример:
var link = /(https?:\/\/|ftp:\/\/|www\.)((?![.,?!;:()]*(\s|$))[^\s]){2,}/gim
var hashTag = /(^|\s)(#[a-z\d-]+)/ig
function rebaseText(text) {
if (typeof text === 'string') {
if (text.match(link)) {
text = text.replace(link, "$1<a href={$2} class='link'>$2</a>");
}
if (text.match(hashTag)) {
text = text.replace(hashTag, "$1<a href='https://google.com/search?q=$2' class='hashtag'>$2</a>");
}
}
return text;
}
console.log(rebaseText('Hello world!!! https://google.com/ some text http://myweb.com/ lorem #hashTag1#hashTag2 qweqwewqeqweq #hashTag3'));
Решил это так, надеюсь в будущем кому-то пригодиться:
const hashTag = /(^|\s*)(#[a-z_а-і-я\d-]+)/ig;
const link = /(\b(https?|):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
const newLink = /(^|[^\/])(www\.[\S]+(\b|$))/gim;
function rebaseText(content) {
let elementСontent = content.replace(link, "<a href='$1' target='_blank'>$1</a>");
let newContent = elementСontent.replace(newLink, '$1 <a target="_blank" href="http://$2" class="news-link">$2</a>');
if (newContent.match(hashTag)) {
newContent = newContent.replace(hashTag, replacer);
}
return newContent;
}
function replacer(str, p1, p2) {
return `<a target='_blank' href="https://www.google.com/search?q=${encodeURIComponent(p2)}" class='news-link'>${str}</a>`;
};
console.log(rebaseText('Hello world http://google.com/ #helloWorld#Tag2 test#tag3 https://google.com/'))
Виртуальный выделенный сервер (VDS) становится отличным выбором
Не могу понять как работать с даннымиУ меня есть большой JSON содержащий информацию по товарам
Имеется объект item который хранит в себе поля name, password и тдЕсть массивы: person_name, person_password в которых лежат имена и пароли
Проблема заключается в том что проект надо перенести на Nuxt и часть кода не работаетА именно от размера экрана надо выполнить не большие манипуляции...