соответствие хэстэгу, упоминанию, URL и специальным символам из твита данных

1

Примеры данных из твита:

Я всегда встречаю @gEmbul на #kampus, мы всегда открываем сайт https://www.youtube.com/ facebook # :) @007

дата - строка, я хочу совместить упоминание символом @, hastag с символом #, любым URL-адресом и специальным символом.

Я буду соответствовать hastag # перед hastag и за hastag

это мой код

var data = "I always meet @gEmbul at #kampus we always open the site https://www.youtube.com/ facebook# :) @007"
function clean(data) {
	data = data.replace(/(?:https?|ftp):\/\/[\n\S]+/g, '')
      .replace(/\B\@\w\w+\b/g, '')
      .replace(/\B\#\w\w+\b/g, '');
	return data;
}
console.log(clean(data))

я вернусь

я всегда встречаюсь у нас всегда открыт сайт

Благодарю.

Теги:
match
twitter

1 ответ

1
Лучший ответ

Я предлагаю немного уменьшить шаблон (2 регулярных выражения, которые вы отличаетесь только на 1 символ, и это можно сделать с помощью символьного класса [#@], и поскольку вы удаляете совпадения, вы можете просто комбинировать регулярные выражения с помощью оператора |):

var data = "I always meet @gEmbul at #kampus we always open the site https://www.youtube.com/ facebook# :) @007"
function clean(data) {
	data = data.replace(/(?:https?|ftp):\/\/[\n\S]+|\B[@#]\w+\b|\b\w+[@#]\B|\B[^\w\s]{2,}\B/g, '');
	return data;
}
document.body.innerHTML = clean(data);

Детали:

  • (?:https?|ftp):\/\/[\n\S]+ - регулярное выражение, которое соответствует URL-адресу, который может охватывать строки новой строки
  • | - или же
  • \B[@#]\w+\b - это @ или # следуют с 1+ символов слова (как целое слово)
  • | - или же
  • \b\w+[@#]\B - 1+ слова с символами @ или # (в целом)
  • | - или же
  • \B[^\w\s]{2,}\B - неглавная граница, 2 или более символов, кроме слова и пробела, и снова граница неслов. Удалите \B чтобы сопоставить 2 или более символа без пробелов/без слов в любом контексте.
  • 1
    Ок, спасибо тебе большое.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню