Есть допустим строка: "Я очень люблю кушать мельмешки, если тоже - заходи ко мне google.com"
Как можно обработать строку и найти в ней ссылку? Если ссылка есть - отправлять true.
Ссылки типа: google.com (без http/s) тоже должны определяться.
Буду рад помощи.
var str = "Я очень люблю кушать мельмешки, если тоже - заходи ко мне pornhub.com"
var reg = new RegExp("([a-zA-Z0-9]+://)?([a-zA-Z0-9_]+:[a-zA-Z0-9_]+@)?([a-zA-Z0-9.-]+\\.[A-Za-z]{2,4})(:[0-9]+)?([^ ])+",'g');
var result = str.match(reg)
if(new RegExp("([a-zA-Z0-9]+://)?([a-zA-Z0-9_]+:[a-zA-Z0-9_]+@)?([a-zA-Z0-9.-]+\\.[A-Za-z]{2,4})(:[0-9]+)?(/.*)?")
.test("Dear D.Fox, you suddenly became a link...")) {
alert("oh no...");
}
webdisigner, под Вашу регулярку подойдет вообще любая строка содержащая от 2 до 4 латинских букв после буквы/цифры и точки:
new RegExp("([a-zA-Z0-9]+://)?([a-zA-Z0-9_]+:[a-zA-Z0-9_]+@)?([a-zA-Z0-9.-]+\\.[A-Za-z]{2,4})(:[0-9]+)?(/.*)?")
.test("Подходящие версии выглядят как 7.xx") // true
webdisigner, я тут еще подумал, помимо ложно положительных вариантов, она дает еще и ложно отрицательные.
Вот этот фрагмент: \.[A-Za-z]{2,4} крайне ограничивает возможные зоны, не подойдет например .рф (не латиница) или .online (больше 4 символов)
Ну и вообще, я не разу не встречал случая, чтоб регуляркой хорошо решалась какая-либо задача, регулярка в коде - это скорее признак того, что тут кому-то было влом подумать.