JavaScript [文字列メソッド (charAt()、concat()、slice()、substring()、substr()、indexOf()/lastIndexOf()、trim())] (5)

 

目次

文字列のトランスコーディング

文字列メソッド _charAt()

文字列メソッド _concat()

文字列メソッド _slice()

文字列メソッド _substring()

文字列メソッド _substr()

文字列メソッド _indexOf()/lastIndexOf()

文字列メソッド _trim()

文字列メソッド _toLowerCase()/toUpperCase()

文字列メソッド _search()/replace()

文字列メソッド _split()


文字列は、一重引用符または二重引用符で囲まれた 0 個以上の文字が並んでいるものです。

'xiaotong'
"xiaotong"

 一重引用符で囲まれた文字列内では、二重引用符を使用できます。二重引用符で囲まれた文字列内では一重引用符を使用できます

'key = "value"'
"It's a long itxiaotong"

一重引用符文字列内で一重引用符を使用する場合は、内側の一重引用符の前にバックスラッシュを追加してエスケープする必要があります。二重引用符は二重引用符で囲まれた文字列内でも使用されます。

'Did she say \'Hello\'?'
// "Did she say 'Hello'?"

"Did she say \"Hello\"?"
// "Did she say "Hello"?"

親切なヒント

デフォルトでは文字列は 1 行でのみ記述でき、複数行に分割するとエラーが報告されます。

長い文字列を複数の行に分割する必要がある場合は、各行の末尾にバックスラッシュを使用できます。

var longString = 'Long \
long \
string';
longString
// "Long long long string"

 エスケープ

バックスラッシュ (\) は文字列内で特別な意味を持ち、一部の特殊文字を表すために使用されるため、エスケープ文字とも呼ばれます。

\0 :null(\u0000)
\b :后退键(\u0008)
\f :换页符(\u000C)
\n :换行符(\u000A)
\r :回车键(\u000D)
\t :制表符(\u0009)
\v :垂直制表符(\u000B)
' :单引号(\u0027)
" :双引号(\u0022)
\ :反斜杠(\u005C)

長さプロパティ

length 属性は文字列の長さを返します。これは変更できません。

var s = 'itxiaotong';
s.length // 9

文字列のトランスコーディング

Base64 トランスコーディング 

いわゆる Base64 は、任意の値を 0 ~ 9、A ~ Z、az、+、/ の 64 文字で構成される印刷可能な文字に変換できるエンコード方式です。これを使用する主な目的は暗号化ではなく、特殊文字を使用せずにプログラムの処理を簡素化することです。

JavaScript は、Base64 に関連する 2 つのメソッドをネイティブに提供します

btoa(): 任意の値を Base64 エンコードに変換します

atob(): Base64 エンコーディングを元の値に変換します

var string = 'Hello World!';
btoa(string) // "SGVsbG8gV29ybGQh"
atob('SGVsbG8gV29ybGQh') // "Hello World!"

 親切なヒント

中国語は処理できません

中国語を扱う必要がある場合は、2 つのメソッドを追加する必要があります

encodeURIComponent()
decodeURIComponent()
function b64Encode(str) {
  return btoa(encodeURIComponent(str));
}
function b64Decode(str) {
  return decodeURIComponent(atob(str));
}
b64Encode('你好') // "JUU0JUJEJUEwJUU1JUE1JUJE"
b64Decode('JUU0JUJEJUEwJUU1JUE1JUJE') // "你好"

文字列メソッド _charAt()

charAtメソッドは指定された位置にある文字を返し、パラメータには0から番号が付けられ ます。

var s = new String('itxiaotong');

s.charAt(1) // "t"
s.charAt(s.length - 1) // "n"

引数が負の場合、または文字列の長さ以上の場合、charAt は空の文字列を返します。

'itxiaotong'.charAt(-1) // ""
'itxiaotong'.charAt(9) // ""

文字列メソッド _concat()

concatメソッドは、2 つの文字列を連結し、元の文字列を変更せずに新しい文字列を返すために使用されます。

var s1 = 'itxiaotong';
var s2 = 'txc';
s1.concat(s2) // "itxiaotongtxc"
s1 // "itxiaotong"

このメソッドは複数のパラメータを受け入れることができます

'txc'.concat('itxiaotong', 'bjtxc') //"txcitxiaotongbjtxc"

パラメータが文字列でない場合、concatメソッドはまず文字列に変換してから接続します。

var one = 1;
var two = 2;
var three = '3';

''.concat(one, two, three) // "123"

文字列メソッド _slice()

スライスメソッドは、元の文字列から部分文字列を抽出し、元の文字列を変更せずにそれを返すために使用されます。最初のパラメータは部分文字列の開始位置、2 番目のパラメータは部分文字列の終了位置 (この位置を除く) です。

'itxiaotong'.slice(0, 4) // "it"

 2 番目のパラメータを省略した場合、部分文字列が元の文字列の末尾に達することを意味します。

'itxiaotong'.slice(2) // "xiaotong"

パラメータが負の値の場合、末尾からのカウントダウン位置、つまり負の値に文字列の長さを加えた値を示します。

'itxiaotong'.slice(-7) // "xiaotong"
'itxiaotong'.slice(0, -7) // "it"
'itxiaotong'.slice(-2, -1) // "n"

最初のパラメータが 2 番目のパラメータより大きい場合、スライスメソッドは空の文字列を返します。

'itxiaotong'.slice(2, 1) // ""

文字列メソッド _substring()

substringメソッドは、元の文字列から部分文字列を抽出し、元の文字列を変更せずにそれを返すために使用されます。これはスライスメソッドとよく似ています。最初のパラメータは部分文字列の開始位置を示し、2 番目の位置は終了位置を示します (返される結果にはこの位置は含まれません)。

'itxiaotong'.substring(0, 2) // "it"

 2 番目のパラメータが省略された場合は、部分文字列が元の文字列の末尾に移動することを意味します。

'itxiaotong'.substring(2) // "xiaotong"

最初のパラメータが 2 番目のパラメータより大きい場合、substring メソッドは 2 つのパラメータの位置を自動的に置き換えます。

'itxiaotong'.substring(9, 2) // "xiaotong"
// 等同于
'itxiaotong'.substring(2, 9) // "xiaotong"

 パラメータが負の数値の場合、部分文字列メソッドは負の数値を自動的に 0 に変換します。

'itxiaotong'.substring(-3) // "itxiaotong"
'itxiaotong'.substring(2, -3) // "it"

これらのルールは直観に反するため、部分文字列メソッドは廃止され、スライスが使用されます。

文字列メソッド _substr()

substrメソッドは、元の文字列から部分文字列を抽出し、元の文字列を変更せずにそれを返すために使用されます。これは、 slice メソッドsubstringメソッドと同じです。

substrメソッドの最初のパラメータは部分文字列の開始位置 (0 から数えます) で、2 番目のパラメータは部分文字列の長さです。

'itxiaotong'.substr(2, 7); // xiaotong

2 番目のパラメータが省略された場合は、部分文字列が元の文字列の末尾に移動することを意味します。

'itxiaotong'.substr(2) // "xiaotong"

最初のパラメータが負の数値の場合、逆数計算の文字位置を示します。2 番目のパラメータが負の場合、自動的に 0 に変換されるため、空の文字列が返されます。

'itxiaotong'.substr(-7) // "xiaotong"
'itxiaotong'.substr(4, -1) // ""

文字列メソッド _indexOf()/lastIndexOf()

IndexOfメソッドは、別の文字列内で最初に出現する文字列を特定するために使用され、返される結果は、一致が開始される位置です。-1が返された場合は、一致しないことを意味します

'hello world'.indexOf('o') // 4
'itxiaotong'.indexOf('txc') // -1

IndexOfメソッドは、この位置から逆方向のマッチングを開始することを示す 2 番目のパラメーターを受け入れることもできます。

'hello world'.indexOf('o', 6) // 7

lastIndexOfメソッドの使用方法は、 indexOfメソッドと同じですが、主な違いは、 lastIndexOf は末尾から一致するのに対し、 indexOfは先頭から一致することです。

'itxiaotong'.lastIndexOf('z') // 5

文字列メソッド _trim()

トリムメソッドは、文字列の両端のスペースを削除し、元の文字列を変更せずに新しい文字列を返すために使用されます。

' hello world '.trim()
// "hello world"

このメソッドはスペースだけでなく、タブ ( \t 、 \v )、改行 ( \n )、およびキャリッジ リターン ( \r ) も削除します。

'\r\nitxiaotong \t'.trim() // 'itxiaotong'

 ES6 拡張メソッド、trimEnd()およびtrimStart()メソッド

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

 

文字列メソッド _toLowerCase()/toUpperCase()

toLowerCaseメソッドは文字列をすべて小文字に変換するために使用され、 toUpperCaseはすべてを大文字に変換するために使用されます。どちらも元の文字列を変更せずに新しい文字列を返します。

'Hello World'.toLowerCase()
// "hello world"

'Hello World'.toUpperCase()
// "HELLO WORLD"

文字列の最初の文字を大文字に変更します

itxiaotong'.charAt(0).toUpperCase() +
'itxiaotong'.substr(1);

文字列メソッド _search()/replace()

この検索メソッドは、元の文字列が部分文字列と一致するかどうかを判断し、一致した部分の最初の位置を返します。一致するものが見つからない場合は-1を返します。 

'itxiaotong,txc'.search('xia') // 2

replaceメソッドは、一致した部分文字列を置換するために使用されます。

'txcxiaotong'.replace('txc', 'it') // "itxiaotong"

文字列メソッド _split()

Splitメソッドは、指定されたルールに従って文字列を分割し、分割された部分文字列で構成される配列を返します。

'it|txc|xiaotong'.split('|') // ["it", "txc","xiaotong"]

分割ルールが空の文字列の場合、返される配列のメンバーは元の文字列の各文字です。

'a|b|c'.split('') // ["a", "|", "b","|","c"]

 引数が省略された場合、返される配列の唯一のメンバーは元の文字列です

'it|txc|bz'.split() // [it|txc|bz]

また、splitメソッドは、返される配列のメンバーの最大数を制限する 2 番目のパラメーターを受け入れることもできます。

'it|txc|bz'.split('|', 0) // []
'it|txc|bz'.split('|', 1) // ["it"]
'it|txc|bz'.split('|', 2) // ["it", "txc"]
'it|txc|bz'.split('|', 3) // ["it", "txc","bz"]
'it|txc|bz'.split('|', 4) // ["it", "txc","bz"]

おすすめ

転載: blog.csdn.net/m0_58719994/article/details/132030039