JavaScript の正規表現を使用してクリック可能なリンクに URL を linkify すると奇妙な問題が発生しました。
so.com をよく調べた後、jmrware/LinkifyURL.jsを使用して URL をクリック可能なリンクに変換し始めました。しかし、スキーマなしで URL を変換しようとすると ((htt|ft)ps)、URL がまったく認識されません。
例:
http://www.google.com (受け入れます)
www.google.com (受け入れません)
google.com (受け入れません)。
誰かがこれの解決策を見つけるのを手伝ってくれますか?
編集: 私のシナリオでは、ユーザーが任意の URL を入力できるテキスト領域でユーザーからの入力を受け入れる必要があります。サイトに表示しているときに、ユーザー入力で見つかった URL をリンクする必要があります。
ここにリンクしようとしている私のテストコンテンツがあります。
> http://example.com:80 (linkified)<br/>
> http://example.com:80/path/ (linkified)<br/>
> http://example.com:80/path/file.txt (linkified)<br/>
> http://example.com:80/path/file.txt?query=val&var2=val2 (linkified)<br/>
> http://example.com:80/path/file.txt?query=val&var2=val2#fragment (linkified)<br/>
> http://example.com/(file's_name.txt) (linkified)<br/>
> http://[2001:0db8:85a3:08d3:1319:8a2e:0370:7348] (linkified)<br/>
> http://[2001:0db8:85a3:08d3:1319:8a2e:0370:7348]/file.txt (linkified)<br/>
> http://youtube.com:80/path/file.txt?query=val&var2=val2 (linkified)<br/>
> www.example.me (not linkified)<br/>
> example.me (not linkified)<br/>
上記のコードでは、最後の 2 つの文字列がリンクされていません。JavaScript RegExp で否定的な後読みを試みましたが、それでもうまくいきませんでした。
((?!(http|ftp|https|ftps)://)^[a-z0-9-]+(.[a-z0-9-]+)+([/?].*)?) - 否定後読み
私は so.com の初心者で、質問が明確でない場合はご容赦ください。