2013-06-14 5 views
0

Я хочу совместить URL с contatin и (www) или без (www) с помощью регулярного выражения. Ниже мой regualr выражениеJavascript: Empty String Match in Regular Expression

^((https?)://)(www\\.)| ^$ +(\.[a-z0-9-]+)+([/?].*)?$ 

, но в этом, пустая строка не работает, например: , когда я вхожу http://www.google.com действительна гиперссылка но http://google.com не является действительным. Спасибо за ответ заранее.

ответ

1

Вы не можете найти несуществующую деталь, используя ^$. который ожидает начало строки (строки), конца строки (строки).

Просто сделать «WWW» часть дополнительно:

^((https?)://)(www\\.)?(\.[a-z0-9-]+)+([/?].*)?$ 

другая проблема, вы ищете двух точек в ряду:

^((https?)://)(www\\.)?(\.[a-z0-9-]+)+([/?].*)?$ 
        ^^

Я думаю, что лучший образец будет

^((https?)://)(www\\.)?([a-z0-9-]+)(\.[a-z0-9-]+)*([/?].*)?$ 

Знаете ли вы, что вы исключаете множество действительных URL-адресов, позволяя только символам [a-z0-9-]?

+0

спасибо за это, но я хочу ограничить '(www)' only, в этом другой символ также принимает как 'sss' –

+1

Как вам узнать, в какой части домена принадлежит символьная последовательность? например 'http: // www.sss.com' против' http: // sss.com'? – stema

+0

так @stema, что я делаю, или, пожалуйста, дайте мне еще одно регулярное выражение, которое проверяет все действующие URL. –