最近ミニプログラムを書くときは、ユーザーが入力したテキストのURLアドレスと一致させるために正規表現を使用し、URLアドレスをクリックできるリンクに置き換える必要があります。これは、検証処理でよく使用するものだと思います。ここで私は私が統合した比較的完全な表現を与えます:
コードコピーは次のとおりです。
var url = /(https?:////|ftps?://///////./d {1,3 }/./d {1,3} ocalhost)(:[0-9]+)?|([/w]+/。)(/s+)(/w {2,4})(:[0-9]+)?)(//?([/w#!:。
この式は、HTTP、HTTP、FTP、FTPS、およびIPアドレスのURLアドレスと一致させることができます。まだURLアドレスマッチングに最適です。この式を使用して、2つの小さな関数を書き、ユーザーのメッセージのURLアドレスをクリック可能なリンクに置き換えました。難しいことは何もありません。 JavaScriptの交換()関数を使用して、置換URLを実装してリンクします。
JavaScriptバージョン:
コードコピーは次のとおりです。
/**
* JavaScriptバージョン
* URLアドレスを完全なAタグ付きリンクコードに変換します
*/
var leplagreurltolink = function(text){
text = text.replace(url、function(url){
var urltext = url;
if(!url.match( '^https?:////')){
url = 'http://' + url;
}
return '' + urltext + '';
});
テキストを返します。
};
PHPバージョン:
コードコピーは次のとおりです。
/**
* PHPバージョンはSilvaコードに基づいて変更されます
* URLアドレスを完全なAタグ付きリンクコードに変換します
*/
/** ===============================================================================
名前:leplage_urltolink()
バージョン:1.0
著者:J de Silva
説明:voidを返します。変換のハンドル
文字列からクリック可能なリンクにurlを入れます。
タイプ:関数
=======================================================================
function terplage_urltolink($ text){
// urlのように見えるものをすべてつかむ...
$ urls = array();
//パターンを作成します
$ 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);
if($ c){
$ urls = $ m [0];
}
//すべてのURLを交換します
if(!empty($ urls)){
foreach($ urls as $ url){
$ pos = strpos( 'http/:////'、$ url);
if(($ pos && $ pos!= 0)||!$ pos){
$ fullurl = 'http://'.perurl;
} それ以外 {
$ fullurl = $ url;
}
$ link = ''。$ url。 '';
$ text = str_replace($ url、$ link、$ text);
}
}
$ textを返します。
}