2013-06-06 3 views
-6

Я хотел бы знать, как добавить http:// в строку, проверив заранее, если она уже находится в строке или нет.Как добавить http: // в строку, если строка не содержит ее?

Как я могу эффективно преобразовать строку в полный URL-адрес, используя только javascript (возможно, с регулярными выражениями)? В идеале я могу проверить, заканчивается ли строка в .com/.org/.net и т. Д.

+2

Ваш вопрос делает не показывать h вы пытались решить это сами. – thejh

+3

Ваш вопрос непонятен. * Что * не существует? – PointedEars

+0

@ PointedEars: Тот факт, что он не мог правильно писать свои мысли, заставлял меня терять очки ни за что. лол. –

ответ

5
var reg = /^((http|https|ftp)://)/; 

if(!reg.test(your_url)) { your_url = "http://" + your_url; } 
+0

Ницца, тестирование для https и ftp тоже ... но, eh, 'url' не имеет значения, если блок не попал, верно? Может быть, изменить 'url' на' your_url'? – thejh

+0

Точка однострочного 'if'? Используйте тройной, если вы настаиваете. – adrianp

+0

@thejh Вы правы! –

1

использование Объединение строк:

/* s being the string */ 
if(s.substr(0,7) !== "http://") 
    s = "http://"+s; 
+1

-1 - Позвольте мне процитировать из заголовка: «если этого не существует» – thejh

+2

Я не вижу, как этот ответ обязательно является неправильным. Вопрос полностью и полностью неясен. –

+0

@thejh Отредактировано (после прочтения между строками, так как вопрос проклят неясно). Не могли бы вы теперь объяснить -1? –

2

Вы можете использовать IndexOf для проверки HTTP: //

if(str.indexOf("http://") < 0){ 
    str = "http://" + str; 
} 
1

Адаптация к вашим потребностям

<script> 
var url = "http://www.google.com..."; 
var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/ 

if (regexp.test(url)) { 
    alert(url); 
} else { 
    alert('http://' + url); 
} 
</script> 
+2

комментарий к стилю кодирования: вы смешиваете линии с точкой с запятой и не с точкой с запятой – thejh

Смежные вопросы