2017-12-15 11 views
0

코드 - 점화기를 사용하여 응용 프로그램을 개발 중입니다.텍스트 상자의 유효성을 검사하여 특정 URI를 허용하는 방법은 무엇입니까?

J Query 또는 JavaScript를 사용하여 텍스트 상자의 유효성을 검사하려는 경우 사용자가 양식을 제출할 때 다음 URL 만 입력 할 수 있습니다.

http:// 
https:// 
ftp:// 
ftps:// 
file:// 
market:// 
linkedin:// 
fb:// 
geo: 
maps:// 

어떤 방법이 있습니까?

+0

일반 JS이면 정규 표현식을 사용하여 시작하는 URL 만 허용하십시오. 그것이 폼 인 경우 멋진 이벤트 바인딩이 될 것입니다. – DanteTheSmith

답변

0
function is_url(str) 
{ 
    regexp = /^(?:(?:https?|ftps?|file?|market?|linkedin?|fb?|maps?):\/\/)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:\/\S*)?$/; 
    if (regexp.test(str)) 
    { 
     return true; 
    } 
    else 
    { 
     return false; 
    } 
} 
+0

답변을 주셔서 감사합니다.하지만 그것의 allwed 나 같은 geo : location url 같은 https://192.168.0.1 같은 모든 URL을 입력하십시오. –

0

입력의 유효성을 검사하는 함수에서이 정규식을 사용해보십시오. 그 다음 디스플레이 오류 메세지를 지정하지 않고 명확 입력과 일치하는 경우

  • :
    /^(http|https|ftp|ftps|file|market|linkedin|fb|maps|geo):\/\//g 
    

    그러나이 반대 논리를 않습니다. 당신은 URL 문자열의 시작되지 않은 경우에도 일치하는 정규 표현식에서 선두 ^을 제거, 귀하의 의견에 아무 곳이나 URL을 방지 싶다면
  • 그렇지 일치하면
  • 는 다음 URL은

괜찮습니다. 같은

: 여기 /(http|https|ftp|ftps|file|market|linkedin|fb|maps|geo):\/\//gm

는 전체 솔루션의 침전물 버전 : 그것은

<input id="urlInput" type="url"> 

에 바인딩

$("#urlInput").focusout(function(){ 
    var inputElement = $("#urlInput"); 
    var regexp = /(http|https|ftp|ftps|file|market|linkedin|fb|maps|geo):\/\//gm; 
    if (regexp.test(inputElement.val())){ 
    inputElement.val(""); 
    alert("This is nto a valid URL") 
    } 
}); 

: fiddlejs

중요한 것은 URL 유효성 검사입니다 너는 너의 재 작업을 원할거야. 보다 사용자 친화적 인 방법으로 오류를보고하지만 그건 또 다른 이야기입니다.

+0

다음과 같이하십시오. var regexp =/(http | https | ftp | ftps | file | market | linkedin | fb | maps | geo) : \/\ // gm; var redirectUrl = $ ('# redirect_profile_url'). val(); if (redirectUrl! = '') { if (regexp.test (redirectUrl)) { msg = "유효한 리디렉션 URL을 입력하십시오. \ n"; } } –

+0

당신에게 작은 피들을 올려주세요. v4는 내가 저장하기 전에 v2에 무언가를 fatfingered 정확한 것입니다 :) – DanteTheSmith

+0

안녕하세요 선생님 내가 Fiddles에 코드를 확인했지만 내가 올바른 URL을 입력하면 그 사람이 유효한 URL을 입력 할 수 있도록하려면 유효하지 않겠다고 말하고 싶습니다. –