Многократная замена за один звонок - PullRequest
0 голосов
/ 30 апреля 2018

Чтобы удалить возможный хеш в конце строки

.replace(/#.*$/,'')

используется. Для удаления возможного слеша в конце строки

.replace(/\/$/, '')

используется.

Для удаления возможного хэша и / или возможного слэша используются оба значения .replace(/#.*$/,'').replace(/\/$/, ''). Правильно?

Любые возможные сокращения для .replace(/#.*$/,'').replace(/\/$/, '')?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 30 апреля 2018

У вас есть два регулярных выражения, которые следуют аналогичной «схеме»: <SOME_SPECIFIC_PATTERN> + $. В этих случаях, когда есть последовательности шаблонов до $, легко использовать группирование конструкция с оператором чередования :

/(?:#.*|\/)$/
 ^^^   ^  ^

Где

/(?:<PATTERN_1>|<PATTERN_2>|<PATTERN_N>)$/

Однако, возможно, для сопоставления с хэштегом вы бы хотели использовать символы #\w+ (# и 1+ слов) или #\S+ (символы # и 1+, не содержащие пробелов) ) шаблон.

0 голосов
/ 30 апреля 2018

Вы можете взять оба в одном регулярном выражении:

.replace(/[#\/]*$/, '')

EDIT:

Если вы также хотите удалить # между:

.replace(/#|[#\/]*$/g, '')

EDIT:

Если вы также хотите удалить все после первого #:

.replace(/#.*$|\/*$/, '')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...