2015-12-06 6 views
1

Как определить формат url с помощью javascript?Как определить формат url с помощью javascript?

Я пробовал с моим кодом, но не работал, что не так.

Когда я проверяю свой код, он не предупреждает. Как я могу сделать ?

function ValidURL(str) { 
    var pattern = new RegExp('^(https?:\/\/)?'+ // protocol 
    '((([a-z\d]([a-z\d-]*[a-z\d])*)\.)+[a-z]{2,}|'+ // domain name 
    '((\d{1,3}\.){3}\d{1,3}))'+ // OR ip (v4) address 
    '(\:\d+)?(\/[-a-z\d%_.~+]*)*'+ // port and path 
    '(\?[;&a-z\d%_.~+=-]*)?'+ // query string 
    '(\#[-a-z\d_]*)?$','i'); // fragment locater 
    if(!pattern.ValidURL(str)) 
    { 
    alert("Please enter a valid URL."); 
    //return false; 
    } 
    else 
    { 
    alert("it's good"); 
    //return true; 
    } 
} 

http://jsfiddle.net/18wz1xto/1/

+0

имеют лет проверил инструменты разработчика консоль на наличие ошибок? –

+0

В скрипке вы не можете передать строку без кавычек в функцию. Используйте одинарные кавычки в строке с двойными кавычками или наоборот. –

+0

показать это 'Uncaught SyntaxError: недопустимое регулярное выражение: /^(https?://)?((([a-zd]([a-zd-]*[a-zd])*).)+[az ] {2,} | ((г {1,3}) {3} {d} 1,3.)) (: d +) (/ [- а-ZD% _ ~ +]) * (?.? [; & a-zd% _. ~ + = -] *)? (# [- a-zd _] *)? $ /: Invalid group' –

ответ

0

В текущем коде Проблема здесь Знак вопроса не удалось избежать

Ваш код

'(\?[;&a-z\d%_.~+=-]*)?'+ // query string 

Исправленный код:

"(\\?[;&a-z\d%_.~+=-]*)?"+ // query string 

Вот почему вы получаете сообщение об ошибке и предупреждении не запускаете.

Рабочего код here

Он не проверяет URL правильно согом регулярного выражения необходимости быть переделан.

Надеюсь, это поможет!

0

Ваша функция должна передать аргумент в кавычках ', и регулярное выражение в строке должно снова вывести \ с \. Посмотрите here.

HTML:

<div onclick="ValidURL('http://www.google.com')">check url format</div> 

JS:

function ValidURL(str) { 
    var pattern = new RegExp('^(https?:\\/\\/)?((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|((\\d{1,3}\\.){3}\\d{1,3}))(\\?[;&a-z\\d%_.~+=-]*)?(\\#[-a-z\\d_]*)?$','i'); // fragment locater 
    if(!pattern.test(str)) 
    { 
    alert("Please enter a valid URL."); 
    //return false; 
    } 
    else 
    { 
    alert("it's good"); 
    //return true; 
    } 
} 
Смежные вопросы