>웹 프론트엔드 >JS 튜토리얼 >텍스트의 URL 주소를 클릭 가능한 link_javascript 기술로 변환하는 JavaScript 및 PHP 사용자 정의 함수

텍스트의 URL 주소를 클릭 가능한 link_javascript 기술로 변환하는 JavaScript 및 PHP 사용자 정의 함수

WBOY
WBOY원래의
2016-05-16 16:40:511992검색

요즘에는 작은 프로그램을 작성할 때 정규식을 사용하여 사용자가 입력한 텍스트의 URL 주소를 일치시킨 다음 URL 주소를 클릭 가능한 링크로 바꿔야 합니다. URL 주소 일치는 모든 사람이 확인 처리에서 자주 사용하는 것이어야 한다고 생각합니다. 다음은 제가 통합한 비교적 완전한 표현입니다.

코드 복사 코드는 다음과 같습니다.

var URL = /(https?://|ftps?://)?((d{1,3}.d{1,3}.d{1,3}.d{1,3})(: [0-9] )?|(localhost)(:[0-9] )?|([w] .)(S )(w{2,4})(:[0-9] )?)(/ ?([w#!:.? =&%@!-/] ))?/ig;

이 표현식은 http, https, ftp, ftps 및 IP 주소의 URL 주소와 일치할 수 있습니다. 이는 여전히 상대적으로 완전한 URL 주소 일치 계산입니다. 이 표현식을 사용하여 사용자 메시지의 URL 주소를 클릭 가능한 링크로 바꾸는 두 가지 작은 함수를 작성했습니다. URL을 링크로 바꾸려면 JavaScript의 교체() 함수를 사용하면 됩니다.

JavaScript 버전:

코드 복사 코드는 다음과 같습니다.
/**
*자바스크립트 버전
* URL 주소를 완전한 A 태그 링크 코드로 변환
​*/
var replacementURLToLink = 함수(텍스트) {
text = text.replace(URL, 함수(url) {
            var urlText = url;
If (!url.match('^https?://')) {
                url = 'http://' url;
            }
                '' urlText ''를 반환합니다.
        });
텍스트 반환;

};

PHP 버전:

코드 복사 코드는 다음과 같습니다.

/**
* Silva 코드를 기반으로 수정된 PHP 버전
* URL 주소를 완전한 A 태그 링크 코드로 변환
​*/
/**=============================================
 이름        : replacement_URLtolink()
 버전     : 1.0
 저자      : J de Silva
 설명: VOID를 반환합니다. 변환 처리
 문자열에서 클릭 가능한 링크로의 URL입니다.
 유형        : 기능
 ============================================*/

함수 바꾸기_URLtolink($text) {
    // URL처럼 보이는 것을 가져옵니다...
    $urls = 배열();
   
    // 패턴 구축
    $scheme = '(https?://|ftps?://)?';
    $www = '([w] .)';
    $local = 'localhost';
    $ip = '(d{1,3}.d{1,3}.d{1,3}.d{1,3})';
    $name = '([w0-9] )';
    $tld = '(w{2,4})';
    $port = '(:[0-9] )?';
    $the_rest = '(/?([w#!:.? =&%@!-/] ))?';
    $pattern = $scheme.'('.$ip.$port.'|'.$www.$name.$tld.$port.'|'.$local.$port.')'.$the_rest;
    $pattern = '/'.$pattern.'/is';
   
    // URL 가져오기
    $c = preg_match_all($pattern, $text, $m);
   
    만약 ($c) {
        $urls = $m[0];
    }
   
    // 모든 URL을 교체합니다
    if (!empty($urls)) {
        foreach($url을 $url로) {
            $pos = strpos('http://', ​​$url);
           
            if (($pos && $pos != 0) || !$pos) {
                $fullurl = 'http://'.$url;
            } 그 밖의 {
                $fullurl = $url;
            }
           
            $link = ''.$url.'';
           
            $text = str_replace($url, $link, $text);
        }
    }
   
    $text 반환;
}

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.