Удалить все специальные символы, кроме символа @, из строки в JavaScript - PullRequest
0 голосов
/ 29 февраля 2020

У меня есть строка :

“Gazelles were mentioned by @JohnSmith while he had $100 in his pocket and screamed W#$@%@$!!!!"

Мне нужно:

“Gazelles were mentioned by @JohnSmith while he had 100 in his pocket and screamed"

Как удалить все специальные символы из строки, ЗА ИСКЛЮЧЕНИЕМ символа @. Я попробовал:

str.replace(/[^\w\s]/gi, '')

1 Ответ

2 голосов
/ 29 февраля 2020

Если вы хотите сохранить @, когда за ним следует слово char, и сохранение W также в порядке, а также удалить символы новой строки, вы можете, например, изменить \s для соответствия пробелам или табуляциям [ \t]

Добавьте @ к классу отрицательных символов и используйте чередование , определяющее совпадение только с @, когда за ним не следует символ слова с использованием отрицательного взгляда.

[^\w \t@]+|@(?!\w)
  • [^\w \t@]+ Соответствие 1+ раз любому символу, кроме слова char, пробела или табуляции
  • | Или
  • @(?!\w) Соответствие @ непосредственно не сопровождается словом char

Regex demo

При замене используйте пустую строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...