2012-12-11 2 views
0

가능한 중복 :
Check if a Javascript string is an url자바 스크립트 정규식 일치하는 올바른 URL,

나는 그것이 경우에 좋은 것, 그래서 정규식에 익숙하지 않다 당신은 제가이 문제를 해결하도록 도울 수 있습니다. 문자열 (텍스트 영역에 입력)에 대한

  1. 확인이 모든 URL이있는 경우 :

    나는 것 JS 기능이 필요합니다. 최초의 URL에 대한 검색이 발견하고 배열 (참, URL)
  2. 없는 경우, 반환 - - 그렇다면
  3. 은 반환 배열 (거짓을, "")

오전 데 문제의 유효성을 확인이 패턴입니다 입력. 이 패턴에서

function _is_url(url) { 
    var pattern = /(((ht|f)tps?\:\/\/)?([a-zA-Z]{1}([\w\-]+\.)+([\w]{2,5})(:[\d]{1,5})?))\S+/i; 
    var result = new Array(); 
    var testing = pattern.test(url); 
    if(testing) { 
     var newurl = url.match(pattern); 
     result[0] = true; 
     result[1] = newurl[0]; 
     console.log(result[1]); 
    } 
    else { 
     result[0] = false; 
     result[1] = ""; 
    } 

    return result; 
} 

, 테스트 == 사실 URL이 유효한 URL이 아닙니다 http://www.youtube 경우에도.

내가 필요한 것은 전체 URL : http://www.youtube.com 및 다른 URL을 확인하는 것입니다.

+0

잘못된 URL과 일치 시키려면 '/ [a-z] + : // [^ s] + /'가됩니다. – Wrikken

+0

'.youtube'가 유효한 TLD가 아닌 이유는 무엇이라고 생각하십니까? Google에 충분한 돈이 있다면 그들은 등록 할 수 있습니다 :-) – Bergi

+0

@Bergi 시도해 보면 –

답변

0

식 뒤에 \S+을 제거하고 www.youtube을 제외하고 단어 경계 \b을 추가하십시오. 또한 {1} 첫 글자를 생략 할 수 있습니다.

+0

console.log (결과 [1])에 계속 나타납니다. http : //www.yo http : //www.you http : //www.yout ... http://www.youtube.com –

+0

'/ (((ht | f) tps? \ : \/\ /)? ([a (\ [\ d] {1,5}))) \ b/i'는 다음과 같이 작동합니다. 나를. 귀하의 의견으로 데모를 보여주십시오. Btw,'.yo' 또는'.you'는 실제로 유효한 TLD가 될 수 있습니다. – Bergi

+0

당신이 내 질문에 대해 잘못 이해했거나 잘 쓰지 못했습니다. ht tp : //youtu.be는 유효한 URL이지만 ht tp : // youtu는 유효한 URL이 아닙니다. htt p : // face 또는 htt p : // goo가 아닌 올바른 URL을 확인하고 싶습니다. –

관련 문제