Как я могу разрешить дефисы в этом RegEx - PullRequest
0 голосов
/ 14 апреля 2020

Я немного знаю о RegEx, но это слишком сложно для меня. Все, что мне нужно изменить, это разрешить использование одного дефиса.

replace(/[^\p{L}\s]+/gu, '')

1 Ответ

1 голос
/ 14 апреля 2020

Вы можете использовать

.replace(/^([^-]*-)|-/g, '$1').replace(/[^\p{L}\s-]+/gu, '')

Он сохранит первые - во входной строке, а также любые буквы Unicode (\p{L}) и пробелы (\s), потому что .replace(/^([^-]*-)|-/g, '$1') будет соответствовать и захватывать - от начала строки - все символы, кроме - до первого -^([^-]*-)), а затем сопоставлять с любым другим - в строке и заменять соответствует значению группы 1 (оно будет пустым, если - не является первым дефисом в строке), а .replace(/[^\p{L}\s-]+/gu, '') удалит один или несколько символов, кроме букв, пробелов и дефисов (останутся символы первый только после первой замены).

См. Демонстрационную версию ECMAScript 2018+ JS ниже:

console.log( "12-3-**(Виктор Викторович)**...".replace(/^([^-]*-)|-/g, '$1').replace(/[^\p{L}\s-]+/gu, '') )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...