正規表現は、これを行うための最善の方法です。ただし、これは教育目的であるため、文字列内のURLを検索する方法を次に示します。正解ではありませんが、概念を示しています。
以下にこのテキストがあるとしましょう:
Lorem ipsum dolorは、amet、consecteturadipiscingelitに座ります。Duis faucibus dui nec estauctorauctor。Nullam vulputate、augue non auctor rhoncus、urna urna tempus velit、non tincidunt nibh orcietelit。整数sednibhmassa、egetvestibulumvelit。www.Nulla.com in elit vitae massa egestas accumsan acsempernisl。urnaporttitorのCurabiturviverraloremは、amet aliquamsapienhttp://imperdiet.orgに座っています。Pellentesque ultriciessagittismalesuada。Mauris lobortisaliquamfelisは前庭に座っています。vitaefaucibuslectusで。Donec consecteturantenisi。Lorem ipsum dolorは、amet、consecteturadipiscingelitに座ります。サスペンドポテンティ。
そこには2つのリンクがあります。コードは次のようになります。
どういうわけか、変数でテキストを取得します。これをと呼びますtext
。
var text = '<that text above>';
次に、テキストを。という配列に分割しますwords
。
var words = text.split(' ');
この例では新しい出力を生成するため、それを保持するための文字列変数が必要です。
var new_text = '';
ループを理解しているようですが、これは配列を通過するほとんどのループがどのように見えるかを示しています。
for (var i=0; i < words.length; i++) {
var word = words[i];
この「単語」の先頭(このコンテキストでは、スペースで区切られたテキストの各セクションを参照)にいずれかのプレフィックスが含まれているかどうかを確認します。実際には、bit.lyは有効なURLです。正規表現は、私たちよりもこれをうまく処理します。
if (word.indexOf('http://') === 0 || word.indexOf('www.') === 0) {
リンク構文を配置して、単語の値を変更します。Markdownを使用しましたが、HTMLなど何でもできます。
word = '[A LINK]' + '(' + word + ')';
}
これは、スクリプトの冒頭で説明した出力です。変更されたかどうかに関係なく、これに物事を追加し続けてください。これに伴う問題は、単語の後に1つまたは94のスペースがある可能性があることですが、常に1つ戻します。正規表現には、これをより適切に処理する機能があります。
new_text += word + ' ';
}
new_text
今はこのように見えます。
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Duis faucibus dui nec est auctor auctor. Nullam vulputate, augue
non auctor rhoncus, urna urna tempus velit, non tincidunt nibh
orci et elit. Integer sed nibh massa, eget vestibulum
velit. [A LINK](www.Nulla.com) in elit vitae massa egestas
accumsan ac semper nisl. Curabitur viverra lorem in urna
porttitor sit amet aliquam sapien [A LINK](http://imperdiet.org.)
Pellentesque ultricies sagittis malesuada. Mauris lobortis aliquam
felis sit amet vestibulum. In vitae faucibus lectus. Donec
consectetur ante nisi. Lorem ipsum dolor sit amet,
consectetur adipiscing elit. Suspendisse potenti.
スタックオーバーフローでは、次のようになります。
Lorem ipsum dolorは、amet、consecteturadipiscingelitに座ります。Duis faucibus dui nec estauctorauctor。Nullam vulputate、augue non auctor rhoncus、urna urna tempus velit、non tincidunt nibh orcietelit。整数sednibhmassa、egetvestibulumvelit。elit vitae massa egestas accumsan acsempernislのリンク。Curabitur viverra lorem in urna porttitor sit amet aliquam sapien A LINK Pellentesque ultriciessagittismalesuada。Mauris lobortisaliquamfelisは前庭に座っています。vitaefaucibuslectusで。Donec consecteturantenisi。Lorem ipsum dolorは、amet、consecteturadipiscingelitに座ります。サスペンドポテンティ。
問題に気づきましたか?分割手法では、「http://imperdiet.org 」が表示されました。URLとして。ユーザーが意味するのは、「http://imperdiet.org」をURLとし、その後にピリオドを付けることでした。正規表現を使用すると、これを回避することもできます。
デモには、間に私の解説がないすべてのコードが含まれています。
正規表現について知りたい場合は、このサイトをお勧めします。