Проверяйте URL только «http: //» или «https: //» в начале строки - PullRequest
0 голосов
/ 10 марта 2020

Я пытаюсь проверить строку в начале со словами "http: //" или "https: //". Некоторые примеры:

http://example.com -> Хорошо

http://www.example.com -> Хорошо

https://example.com -> Хорошо

https://www.example.com -> Хорошо

http: ///example.com -> Неправильно

http: / www.example.com -> Неверно

https // example.com -> Неверно

У меня есть это регулярное выражение, но оно не работает хорошо:

str.match(/^(http|https):\/\/?[a-d]/);

... любая помощь, пожалуйста?

Ответы [ 2 ]

0 голосов
/ 10 марта 2020

Я, честно говоря, не знаю, почему люди хотят регулярное выражение для каждой простой вещи. Если все, что вам нужно сделать, это сравнить начало строки, гораздо быстрее в некоторых случаях просто проверить его, например, то, что вы просите («проверить строку в начале словами« http: // »). или 'https: //' "):

var lc = str.toLowerCase();
var isMatch = lc.substr(0, 8) == 'https://' || lc.substr(0, 7) == 'http://';
0 голосов
/ 10 марта 2020

Попробуйте это

str.match(/^(http(s)?:\/\/)[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\(\)\*\+,;=.]+$/)
...