マッチング・ルールのゆるい書き方は以下の通り:
- http://, https://, で始まるテキストにマッチします。
- End は、非単語境界、非改行、非スペース、非改ページ、非キャリッジリターン、非<,非>
- 例えば、ピン留めされたコピーされたリンクは、見えない文字、余分なスプライスされた空白のurl 16進エンコーディング%E2%80%8Bを運ぶかもしれません。
コードは以下の通りです。
function textTolinks(text){
var reg1 = /((http\:\/\/|https\:\/\/)[^\s\b\r\n\f\<\>\u200B]+)/g;
var reg2 = /(www\.[^\s\b\r\n\f\<\>\u200B]+)/g;
if (reg1.test(text)) {
text = text.replace(reg1, '<a style="cursor:pointer" data-href="$1" onclick="readUrl(this)" target="_blank" rel="noopener norefferrer" >$1</a>')
} else if (reg2.test(text)) {
text = text.replace(reg2, '<a onclick="readUrl(this)" style="cursor:pointer" data-href="http://$1" target="_blank" rel="noopener norefferrer" >$1</a>')
}
console.log(text)
return text
}