2017-12-15 6 views
0

URL을 입력하는 양식이있어서 JavaScript가있는 URL인지 확인해야합니다.자바 스크립트로 사용자 입력 URL 유효성 확인

Firefox의 콘솔은 코드에 오류를 나타내지 않고 (디버거에도 아무 것도 표시하지 않지만) 실행되지 않습니다.

는 또한 검증 아무것도하지만

document.getElementById("link").addEventListener("click", linkfuction, false); 
 

 
function linkfuction() { 
 
    var link = document.getElementById("general-link").value; 
 

 
    document.getElementById("1").innerhtml = "link"; 
 

 
    function ValidURL(link) { 
 
    var regex = /(http|https):\/\/(\w+:{0,1}\w*)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%!\-\/]))?/; 
 
    if (!regex.test(link)) { 
 
     document.getElementById("1").innerhtml = "Enter a valid url"; 
 
     return false; 
 
    } else { 
 
     return true; 
 
    } 
 
    } 
 

 
}
<div style="padding-bottom: 1rem;"> 
 
    <form><input type="text" id="general-link"><input type="button" id="link" value="Download"></form> 
 
</div> 
 
<div style="font-size: 1.5rem"> 
 
    <p id="1"></p> 
 
</div>

+0

'innerhtml'가 있어야한다'innerHTML' –

+0

어디에/어떻게 당신이 당신의'ValidURL' 함수를 호출합니까? 게시 한 코드에서 실제로 사용하지 마십시오. – Turnip

+0

'innerhtml' ►'innerHTML'과'ValidURL'은'linkfuction' 안에 중첩되어 결코 트리거되지 않습니다. 오류가없는 이유는 자바 스크립트에서 'innerhtml'과 같은 속성이 존재하지 않는다면 할당 중에 생성된다는 것입니다. 코드는 요소에 대한 링크의 값으로'innerhtml'을 잘 추가하여 실행합니다. 임베디드 함수의 문법이 유효하고 중첩 된 함수 인 ValidURL은 오류를 발생시키지 않았지만 임베드되었지만 결코 호출되지 않았기 때문에 오류가 트리거되지 않습니다. – Nope

답변

0

당신은 당신의 ValidURL 함수를 호출되지 않고 입력을 표시하기 위해 시도했습니다. 또한 입력 한 innerhtmlinnerHTML이어야합니다.

작동 예제는 스 니펫을 참조하십시오.

document.getElementById("link").addEventListener("click", linkfuction, false); 
 

 
function linkfuction(){ 
 
var link = document.getElementById("general-link").value; 
 

 
document.getElementById("1").innerHTML = "link"; 
 

 
var isValid = ValidURL(link) 
 

 
alert(isValid); 
 

 
} 
 

 
function ValidURL(link) { 
 
    var regex = /(http|https):\/\/(\w+:{0,1}\w*)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%!\-\/]))?/; 
 
    if(!regex.test(link)) { 
 
     document.getElementById("1").innerHTML = "Enter a valid url"; 
 
     return false; 
 
    } else { 
 
     return true; 
 
    } 
 
}
<div style="padding-bottom: 1rem;"> 
 
    <form> 
 
    <input type="text" id="general-link"> 
 
    <input type= "button" id="link" value="Download"> 
 
    </form> 
 
</div> 
 

 
<div style="font-size: 1.5rem"> 
 
    <p id="1"></p> 
 
</div>

+0

이 줄은 실제로 문자열 대신'link' 변수를 사용해야한다고 상상해보십시오 :'document.getElementById ("1"). innerHTML = "link";' – Turnip

+0

고마워요. 다른 사람들 ^^) –