0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

JavaScriptの文字列あれこれ

Last updated at Posted at 2023-06-29

はじめに

これ↓に解説を付けただけです。ほぼ自分用。

初学者なので、ご指摘あればぜひください。

くっつける

+演算子でよし。

"Hello" + " " + " World"; // Hello World

元画像にはString.concat(args)が紹介されていますが、性能的にも代入演算子のほうがいいっぽいので、特に使う必要はない様子。

String.prototype.concat() - JavaScript | MDN

余分な空白を切り取る

String.trim()は、前後の余分な空白(インデントなど)を取り除く。

"   Hello   ".trim(); // "Hello"

前半のみ取り除く場合はString.trimStart()、後半はString.trimEnd()で取り除くことができる。

"   Hello   ".trimStart(); // "Hello   "
"   Hello   ".trimEnd(); // "   Hello"

繰り返す

String.repeat(count)で、カウント分繰り返す。

"Hello".repeat(3); // HelloHelloHello

埋める

String.padStart(length, char)は、指定した文字数になるように文頭から埋めてくれる。

"Hello".padStart(7, "#"); // ##Hello

文末から埋めたい場合はString.padEnd(length, char)を使う。

"Hello".padEnd(7, "#"); // Hello##

切り取る・抽出する

一文字取り出す

一文字であれば、配列のようにブラケット指定が使用できる。

"Hello"[4]; // o

String.charAt(index)で、指定したインデックスの文字列が抜き出せる。

例では、インデックスが4(=5文字目)のoを抜き出していることがわかる。

"Hello".charAt(4); // o

指定した部分を切り出す

String.slice(start, end)で、指定した部分を文字列として切り出せる。
注意点として、endに指定したインデックスの文字は含みません。

"Hello".slice(1, 3); // el

String.substring(start, end)も同様に使える。

"Hello".substring(1, 3); // el

また、String.substr(start, length) というものもある。
これは、startで指定したインデックスから初めて、長さがlengthになるように文字列を切り出す。

この機能は現在非推奨になっている様子。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/substr

"Hello".substr(1, 2); // el

slicesubstringの違いについては以下がわかりやすかった。

【JavaScript】sliceとsubstringの違い|Webエンジニア Wiki

置き換える

大文字・小文字にする

String.toLowerCase()ですべて小文字になる。

"Hello".toLowerCase(); // hello

String.toUpperCase()ですべて大文字になる。

"Hello".toUpperCase(); // HELLO

指定した文字を置き換える

String.replace(old, new)で、指定した文字に当てはまるもののうち最初の要素を置き換える。

"Hello".replace("l", "*"); // He*lo

String.replaceAll(old, new)ですべて置換する。

"Hello".replaceAll("l", "*"); // He**o

分割する

String.split(str)で、指定した文字列を仕切り文字として分割する。
空文字を指定することで、1文字ずつに分解することもできる。

"Hello".split(""); // ['H', 'e', 'l', 'l', 'o']

検索する

何文字目にあるか

String.indexOf(str)は、指定した文字列の頭文字が含まれる最初のインデックスを返す。
なければ-1を返す。

"Hello".indexOf("o"); // 4

String.lastIndexOf(str)は、指定した文字列の頭文字が含まれる最後のインデックスを返す。
こちらもなければ-1を返す。

"Hello".lastIndexOf("lo"); // 3

String.search(str)は、文字列と正規表現のどちらも使うことができる。
なければ-1を返す。

"Hello".search("el"); // 1

含むかどうか

String.includes(str)は、指定した文字列が含まれているかどうかを判定する。

"Hello".includes("e"); // true

より詳しく正規表現を用いる場合は、Regex.test(str)を使う。

/[A-Z]/.test("Hello"); // true

先頭・末尾がその文字列か

指定の文字列で始まるかどうかは、String.startsWith(str)で検査できる。

"Hello".startsWith("Hell"); // true

指定の文字列で終わるかどうかは、String.endsWith(str)で検査できる。

"Hello".endsWith("ello"); // true
0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?