JavaScriptで特定の文字の前後の文字列を取得する方法|substring()の使い方を実例付きで解説
JavaScriptで文字列の一部を取得したい場合、String.substring()メソッドが役立ちます。このメソッドを使えば、特定の文字を基準にして、その「前」または「後」にある任意の部分文字列を簡単に取り出すことができます。
substring()メソッドの基本
substring()メソッドは、開始インデックス(含む)から終了インデックス(含まない)までの範囲で文字列を切り出します。引数を1つだけ指定した場合は、そのインデックスの位置から文字列の末尾まですべてが抽出されます。
構文1:特定の文字より後ろの部分を取得する
次のコードでは、特定の文字の直後から文字列の末尾までを取得しています。
string.substring(string.indexOf(character) + 1);
まずindexOf()で対象の文字が最初に出現する位置を特定し、+1することでその文字自体を除外した位置以降を切り出します。
構文2:特定の文字より前の部分を取得する
次のコードでは、文字列の先頭から特定の文字の手前までを取得しています。
string.substring(0, string.indexOf(character));
サンプルコード
以下の例では、関数subStr()に文字列・対象の文字・取得位置('b'=後ろ/'a'=前)を渡し、結果を出力します。
<html>
<body>
<script>
function subStr(string, character, position) {
if (position == 'b')
return string.substring(string.indexOf(character) + 1);
else if (position == 'a')
return string.substring(0, string.indexOf(character));
else
return string;
}
document.write(subStr('Tutorix & Tutorialspoint', '&', 'a'));
document.write("</br>");
document.write(subStr('Tutorix:a best e-learning platform', ':', 'b'));
</script>
</body>
</html>実行結果
Tutorix a best e-learning platform
1つ目の出力では「&」より前の「Tutorix」、2つ目の出力では「:」より後ろの「a best e-learning platform」がそれぞれ取得できていることがわかります。
注意点
indexOf()は対象の文字が見つからない場合に-1を返します。この場合、substring(-1 + 1)、つまりsubstring(0)となり、文字列全体が返されてしまうため、事前に存在チェックを行うのが安全です。
補足:slice()やsplit()による代替手段
同様の処理はslice()メソッドでも実現できます。substring()と異なり、負の値を指定すると文字列の末尾から数えた位置として扱われる点が特徴です。
string.slice(string.indexOf(character) + 1);
また、split()を使えば区切り文字で文字列を分割し、配列として各部分にアクセスすることも可能です。
string.split(':')[1]; // 区切り文字の後ろの部分を取得用途に応じてこれらのメソッドを使い分けることで、より柔軟な文字列操作が行えます。
-
【JavaScript】ドキュメント全体のHTMLを文字列として取得する方法を解説
Webページのソースコード全体を取得して処理したい場面は、デバッグや動的なコンテンツ操作など、JavaScript開発では意外と多くあります。この記事では、ドキュメント全体のHTMLを文字列として取得する方法を、具体的なコード例とともにわかりやすく解説します。 innerHTMLプロパティを使った取得方法 ドキュメント全体のHTMLを文字列として取得するには、document.documentElementのinnerHTMLプロパティを利用します。 document.documentElement.innerHTML; document.documentElementはHTML文書のルート要
-
PHPのmb_substr()関数で文字列の一部を抽出する方法をわかりやすく解説
PHPでは、mb_substr()関数を使うことで、指定した文字列から任意の部分(部分文字列)を取り出すことができます。これはマルチバイト文字に対応した安全なsubstr()であり、文字数に基づいて動作します。位置は文字列の先頭から数えられ、最初の文字が「0」、2番目の文字が「1」というように扱われます。日本語などのマルチバイト文字列でも文字化けせずに処理できるのが大きな特徴です。 構文 string mb_substr(str $string, int $start, int $length, str $encoding) パラメータ このPHP関数は、$string、$start、$l