1. 概要
JavaScript では、ユーザー入力データを処理するとき、DOM オブジェクトのプロパティを読み取ったり設定したり、Cookie を操作したりするときに、文字列がほとんど使用されます。 JavaScript のコア部分は、文字列の分割、文字列の大文字と小文字の変更、部分文字列の操作など、一般的な文字列操作のためのプロパティとメソッドのセットを提供します。
現在のほとんどのブラウザでも、正規表現を利用すると多くの文字列操作タスクが大幅に簡素化されるため、正規表現の恩恵を受けることができますが、ある程度急な学習曲線を克服する必要もあります。ここでは、主に文字列自体に対するいくつかの操作を紹介します。正規表現については、今後のエッセイで説明します。
2. 文字列の作成
文字列を作成するにはいくつかの方法があります。最も簡単な方法は、一連の文字を引用符で囲むことです。これを文字列変数に割り当てることができます。
var myStr = "Hello, String!";
二重引用符または一重引用符を使用して文字列を囲むことができますが、文字列を区切る引用符のペアは同じである必要があり、混合できないことに注意してください。
var myString = "Fluffy is a pretty cat.'; のような宣言は不正です。
2 種類の引用符の使用を許可し、一方をもう一方に埋め込むなど、特定の操作を簡素化します。
上記のスクリプトではいくつかの文字列を作成しましたが、本質的には、これらは実際の文字列オブジェクトではなく、正確には文字列型の値です。文字列オブジェクトを作成するには、次のステートメントを使用できます: var strObj = new String("Hello, String!");
typeof 演算子を使用すると、上記の myStr 型が string であり、strObj 型であることがわかります。オブジェクトです。
文字列の長さを知りたい場合は、その長さプロパティ string.length を使用します。
文字列の指定された位置にある文字を取得するメソッド: string.charAt(index);
3. 文字列の連結
問題:
2 つ以上の文字列を 1 つの大きな文字列に結合する
解決策:
非常に簡単です。" " を使用して 2 つの文字列を「追加」するだけです:
String オブジェクトには、" " と同じ機能を実行するメソッド concat() も用意されています。
string.concat(value1, value2, ...)
ただし、concat() メソッドは明らかにそうではありません。 " " と同じくらい良い 直感的で簡潔。
4. 文字列の部分文字列へのアクセス
質問:
文字列の一部のコピーを取得します。
解決策:
substring() または slide() メソッド (NN4、IE4) を使用します。その具体的な使用法については以下で説明します。
substring() のプロトタイプは次のとおりです: string.substring(from, to)
最初のパラメーター from は、元の文字列内の部分文字列の開始位置を指定します (0 から始まるインデックス)。2 番目のパラメーター to はオプションです。 . これは、元の文字列内の部分文字列の終了位置を指定します (0 から始まるインデックス)。これを省略すると、部分文字列は最後まで続きます。
パラメータ from が誤ってパラメータ to よりも大きい場合はどうなりますか? JavaScript は部分文字列の開始位置と終了位置を自動的に調整します。つまり、substring() は常に 2 つのパラメーターのうち小さい方から始まり、大きい方で終わります。ただし、開始位置の文字は含まれますが、終了位置の文字は含まれないことに注意してください。
スライス() のプロトタイプは次のとおりです: string.slice(start, end)
パラメータ start は部分文字列の開始位置を表し、負の数の場合は最後からの番号として理解できます。たとえば、-3 は下から 3 番目の開始を意味し、パラメータ end は start と同様に負の数にすることもでき、その意味は最後から 2 番目の位置の終了も示します。 lice() のパラメータは負の値も指定できるため、substring() よりも柔軟性が高くなりますが、start が end よりも大きい場合は空の文字列が返されます (例は省略)。
もう 1 つのメソッドは substr() で、そのプロトタイプは次のとおりです: string.substr(start, length)
プロトタイプから、start が開始位置を表し、length が部分文字列を表すことがわかります。長さ。 JavaScript 標準では、このメソッドの使用は推奨されていません。
5. 文字列の大文字と小文字の変換
問題:
都市などのユーザー入力情報を受け取るテキスト ボックスがあり、文字列の比較は自然に行われます。現時点では使用されるため、比較する前に大文字と小文字の変換を実行して、変換後の状況のみを考慮するか、ページ上のデータを収集してデータベースに保存することが最善です。データベース このような場合、文字列の大文字と小文字の変換を考慮する必要があります。
解決策:
toLowerCase() メソッドと toUpperCase() メソッドを使用します:
注意する必要があることが 1 つあります。それは、コンピューターの地域設定です。 「<」と「>」を使用して文字列を比較すると、JavaScript はそれらを Unicode として比較しますが、明らかに Web を閲覧している人はテキストを Unicode として読みません:) たとえば、スペイン語では、従来の並べ替えに従って、「ch」 " は "c" と "d" の間の文字としてソートされます。 localeCompare() は、デフォルトのロケールの文字照合を使用する方法を提供します。
7. 文字列の検索
質問:
文字列に別の文字列が含まれているかどうかを判断します。
解決策:
文字列のindexOf() メソッドを使用します:
strObj.indexOf(subString[, startIndex])
strObj は判定対象の文字列、subString は strObj 内で検出される部分文字列です。文字列、startIndex はオプションで、検索の開始位置 (0 から始まるインデックス) を示します。startIndex が省略された場合は、strObj の先頭から検索します。startIndex が 0 未満の場合は 0 から開始し、startIndex が 0 より大きい場合は 0 から開始します。最大インデックスを指定し、最大インデックスで開始から検索します。
indexOf() は、strObj 内の subString の開始位置を返します。見つからない場合は、-1 を返します。スクリプトでは、次のように使用できます:
8. Unicode 値と文字列内の文字との間の変換
質問:
文字の Unicode エンコード値を取得し、その逆も行います。
解決策:
文字の Unicode エンコードを取得するには、次のように定義される string.charCodeAt(index) メソッドを使用できます。
strObj.charCodeAt(index)
インデックスは指定されたものです。 strObj オブジェクト位置 (0 から始まるインデックス) 内の文字の場合、戻り値は 0 ~ 65535 の 16 ビット整数です。例:
var strObj = "ABCDEFG";
var code = strObj.charCodeAt(2) // 文字「C」の Unicode 値は 67
Index で指定されたインデックスに文字が存在しない場合、戻り値は NaN になります。
Unicode エンコーディングを文字に変換するには、String.fromCharCode() メソッドを使用します。これは String オブジェクトの「静的メソッド」であるため、使用前に文字列インスタンスを作成する必要はありません。 > String.fromCharCode(c1, c2, ...)
0 個以上の整数を受け入れ、各パラメータで指定された文字を含む文字列を返します。例:
JavaScript および Dhtml クックブック(Oreilly) ;
JavaScript-The Definitive Guide(4th Edition);