Как не включать конечную пунктуацию в URL (регулярное выражение) - PullRequest
0 голосов
/ 02 июля 2018

поэтому у меня есть этот код:

const urlPattern = new RegExp(
  "(https?:\\/\\/(?:www\\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\\.[^\\s]{2,}/?|www\\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\\.[^\\s]{2,}/?)"
)

Я заметил, что если я оканчиваю адрес знаком пунктуации, тогда этот знак будет включен в адрес. Есть ли способ исключить это? "Здравствуйте, это строка google.com, больше материала www.address.co." Я хочу, чтобы это давало ["Здравствуйте, это строка", "google.com", ", больше вещей", "www.address.co", "."]

На данный момент я хотел бы предположить, что мы не отправляем URL-адреса с конечной пунктуацией, но допустимо, чтобы URL-адреса были с пунктуацией, если за ними следует другой непробельный символ, например "www.google.com/blah" .2stuff? Here "это нормальный URL, но я бы хотел" www.google.com/. " просто вернуть ["www.google.com/", "."] и период, который будет храниться отдельно. У вас есть предложения, как это сделать?

1 Ответ

0 голосов
/ 02 июля 2018

Попробуйте это, просто добавили еще один шаблон в последний оператор

const urlPattern = new RegExp(
  "(https?:\\/\\/(?:www\\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\\.[^\\s]{2,}[.,]/?|www\\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\\.[^\\s]{2,}[.,]/?)"
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...