情報アイランド

「情報を制する者は世界を制す」をモットーに様々な情報を提供することを目指すブログです。現在はプログラミング関連情報が多めですが、投資関連情報も取り扱っていきたいです。

Node.jsでURLエンコードを行う

URLエンコードを行うにはencodeURIComponent関数を使用します。

第1引数に文字列を指定します。

返り値としてURLエンコードされた文字列が得られます。

しかし、この関数は一部のURLエンコードしなければならない文字をエンコードしないため、その文字に関しては自分でエンコードしなければなりません

具体的には、下の文字に関しては自分でエンコードしなければなりません。

  • !
  • '
  • (
  • )
  • *

したがって、下のような関数を作成し、使用します。

function urlencode (str) {
    return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {
        return '%' + c.charCodeAt(0).toString(16).toUpperCase();
    });
}

サンプルコード1

url-encode.js

function urlencode (str) {
    return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {
        return '%' + c.charCodeAt(0).toString(16).toUpperCase();
    });
}

console.log(urlencode('0123456789'));
console.log(urlencode('abcdefghijklmnopqrstuvwxyz'));
console.log(urlencode('ABCDEFGHIJKLMNOPQRSTUVWXYZ'));
console.log(urlencode('\t\n\r'));
console.log(urlencode(' '));
console.log(urlencode('!"#$%&\'()*+,-./'));
console.log(urlencode(':;<=>?@'));
console.log(urlencode('[\]^_`'));
console.log(urlencode('{|}~'));

実行結果

C:\work\node>node url-encode.js
0123456789
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
%09%0A%0D
%20
%21%22%23%24%25%26%27%28%29%2A%2B%2C-.%2F
%3A%3B%3C%3D%3E%3F%40
%5B%5D%5E_%60
%7B%7C%7D~

関連

pizyumi
プログラミング歴19年のベテランプログラマー。業務システム全般何でも作れます。現在はWeb系の技術を勉強中。
スポンサーリンク

-Node.js