入力文字列からURL部分の抜き出しを行う-JavaScriptの正規表現

入力した文字列のうち、URL部分を抜き出し、クリックで飛べるようにするなどの機能を作成するにはURL判定を行うコードを記述する必要があります。 このコードの作成には、javaScriptの正規表現を使う方法があります。詳しくは次のリンクに書いてあります。 http://www.openspc2.org/JavaScript/data/regexp.html


例として、

var _val = dojo.byId(objId).value;

で定義されていて、「value」の中身は適当なURLを含む文章とします。この中にはURLがありますが別の関係ない文章がありますから、このままではURL単体を抜き出すことが出来ません。そこで

var spritval = _val.split(/\r\n|\n/g);

のようなコードを作成します。このval.split()は入力された文章を()内で指定されたルールに従い区切り、それぞれを配列に格納します。この()内では上記で示したリンクの正規表現というのを用いていて、改行のところで分割処理をしています。その後、

    for (i in spritval) {
        if (spritval[i].match(/^https?:\/\/[^   ]/i)) {

のような文を記述して分割した文字列のうちhttpから始まるURL部分の取得をしています。このmatchの()内にも正規表現によるルールが適用されています。このif文の後に抜き出したURLをどこかに保存するとかの処理を行います。


以上のような手順で行うと、簡単ではありますがURL部分の抜き出しが行えます。(但し、特別な場合は間違ったURLを取得する可能性があるので、理解した上で対策を考える必要があります。)


参考リンク: [1]「Ajax Tower-文字列を分割する」http://www.openspc2.org/JavaScript/data/regexp.html


[2]「JavaScriptの正規表現-パターンマッチング-」http://www.ajaxtower.jp/js/string/index1.html