Archives by date

You are browsing the site archives by date.

【Javascript】文字列の指定位置から指定文字数分を切り出す。

メモ。

「substr(index, length)」を用いる。

以下例。

var str = 'abcdefghijklmnopqrstuvwxyz';

var targetSt = 'jkl';
var targetEd = 'xyz';
var st = str.indexOf(targetSt) + targetSt.length;
var ed = str.indexOf(targetEd);
var length = ed - st;
var result = str.substr(st, length);
console.log(result); // mnopqrstuvw

 

【Javascript】文字列内を検索し出現位置を取得する。

指定文字列を検索し、最も初めにヒットした位置が何文字目かを取得する方法。PHPでいうとstrpos()とかstripos()みたいなことをJavascriptでやりたい場合。

indexOf()、lastIndexOf()を用いる。

■indexOf(needle, index)
文字列の先頭からneedleを検索し、一番最初にヒットした位置を返却する。
indexが指定された場合、その位置から文字列の末端に向かって検索を開始する。
ヒットしなかった場合は-1を返却する。

■lastIndexOf(needle, index)
文字列の末端から遡ってneedleを検索し、一番最初にヒットした位置を返却する。
indexが指定された場合、その位置から文字列の先頭に向かって検索を開始する。
※返却される数値は先頭から数えた位置である点に注意
ヒットしなかった場合は-1を返却する。

 

以下例。

var str = 'abcdefghijklmnopqrstuvwxyz';

var pos = str.indexOf('i'); // 8
var l_pos = str.lastIndexOf('i'); // 8
var pos_i = str.indexOf('i', 9); // -1
var l_pos_i = str.lastIndexOf('i', 9); // 8
var pos_i_2 = str.indexOf('i', 7); // 8
var l_pos_i_2 = str.lastIndexOf('i', 7); // -1

 

【Javascript】でURLエンコード、デコードする方法。

メモ。

■URLエンコード
下記何れかの関数を用いる。

・encodeURI()
・encodeURIComponent()

違いはエンコードしない文字列に差がある点。

関数名 エンコードしない文字列
encodeURI() ;/?:@&=+$-_!~*.,()a#’
encodeURIComponent() -_!~*.()a’

基本的には「encodeURIComponent()」を使ってればいいのではないかと。

■URLデコード
下記何れかの関数を用いる

・decodeURI()
・decodeURIComponent()

エンコード時に使用した関数と対応するデコード方法で復元を行うこと。またこれらの関数はUTF-8でエンコードを行うので、それ以外の文字コードを渡したい場合別のアプローチをとる必要があるので注意されたし。
※いずれの関数もデコードできない文字が含まれるときはスクリプトを終了させてしまうので、適宜try,catchなどをすること。