Регулярное выражение в isURL работает не во всех случаях.
Ложные отрицания (неверно возвращает ложь):
https://link.springer.com/article/10.1057/s41303-017-0039-0
https://www.academia.edu/12962582/Embodiment_Semiosis._Violi_P
Ложные срабатывания (неверно возвращает истину:
3.5/5
Создайте регулярное выражение, которое возвращает true для следующих URL-адресов:
http://nonssl.com
https://ssl.com
localhost:3000/
nohttp.com
withslash.com/
sub.domain.com
withpath.com/a/b
И возвращает false для следующего:
например
3.5/5
Мой текущий RegExp =
/^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w-]+)+[\w\-_~:/?#[\]\@!\$&'\(\)\*\+,;=]+$/i
Плюс я нашел это RegExp = ^ ((ftp | http | https): //)? (Www.) ?? (?!. (ftp | http | https | www.)) ?? [a-zA-Z0-9 _-] + (. [a-zA-Z] +) + ((/) [\ w #] +) (/ \ w + \? [ a-zA-Z0-9 _] + = \ w + (& [a-zA-Z0-9 _] + = \ w +) *)? $, но принимайте все, кроме localhost: 3000, http://localhost: 3000 /