JavaScript文字列の一般的な方法
charAt()
concat()
indexOf(), lastIndexOf()
localeCompare()
slice()
split()
substr(), substring()
match()
replace()
search()
toLocaleLowerCase(), toLocaleUpperCase(),toLowerCase(),toUpperCase()
includes(), startsWith(), endsWith()
repeat()
````
charAt()
charAtは、指定されたインデックス位置の文字を返します.その機能は、配列が中かっこで対応する下付き位置のデータを取得するのと似ています.もちろん、文字列も中かっこを使用することができます.以下、コードを見てください.
var str1 = 'abcdefg';
console.log(str1.charAt(2)) // 'c'
console.log(str1[2]) // 'c'
`charAtは日常的に開発された使用において、IE対応の低バージョンブラウザ、IE 6、7を処理するのに使用されることが多い.低バージョンのIEブラウザでは、中かっこでundefinedが出力されます.
注意:charAtメソッドは、indexの位置を指定する文字に等しい文字値を返します.1つの文字列の最初の文字はインデックス位置0にあり、2番目の文字はインデックス位置1にあります.範囲外のindexは空の文字列を返します.
concat()
concatは、配列の一般的な方法にもこの方法があり、機能は2つ以上の配列を結合してつなぐことを返すために使用され、文字列というconcatも同じ機能であり、1つの2つ以上の文字列をつなぐ文字列を返し、元の文字列に影響を与えない.コードを見てみましょう.
var str1 = 'abcdefg', str2 = '1234567';
var str3 = str1.concat(str2);
console.log(str3) // 'abcdefg1234567'
` 注意:concatメソッドの結果は、result=string 1+string 2+string 3+stringNに等しい.ソース文字列または結果文字列の値の変化は、他の文字列の値には影響しません.文字列でないパラメータがある場合、string 1に接続する前にまず文字列に変換されます.
indexOf,lastIndexOf
indexOfは、文字列に最初に出現した文字の位置を返し、lastIndexOfは文字列に最後に出現した文字の位置を返します.この2つの方法は機能が似ていて、実際の使用では必要に応じて使用されています.以下、コードを見てください.
var str1 = 'abcdcefcg';
console.log(str1.indexOf('c')) // '2'
console.log(str1.lastIndexOf('c')) // '7'
`indexOfとlastIndexOfは2つのパラメータを受信します.1つ目はインデックスする文字、必須パラメータ、2つ目はオプションパラメータで、インデックスの位置で、インデックスが必須文字を検索する場所です. 注意:indexOf、lastIndexOfメソッドはStringオブジェクトのサブ文字列の位置を返します.サブストリングが見つからない場合は、-1を返します.startindexが負の場合、startindexはゼロとみなされます.最大インデックスより大きい場合は、最大インデックスとみなされます.
localeCompare()
localeCompare()メソッドは、2つの文字列をローカル固有の順序で比較します.localeCompareメソッドはstringVarとstringExpに対してゾーン設定を区別する文字列比較を行い、システムのデフォルトゾーン設定のソート順に応じて次のいずれかの結果を返します.-1、stringVarがstringExpの前に並んでいる場合.+1,stringVarがstringExpの後ろに並んでいる場合.2つの文字列が等しい場合は0(ゼロ):
str1 = 'GBDCFEA'
var strArr = str1.split('').sort(function(strVar, strExp){
return strVar.localeCompare(strExp)
})
console.log(strArr.join('')) // ABCDEFG
` 注意事項:文字列のソート方法自体も配列のsortによって実現されています.sort方法の使い方は私のjavaScript配列の配列の常用方法を参照してください.
slice()
sliceは文字列の断片を抽出し,抽出した文字列を新しい文字列として返す.次はコードを見てください:`
var str = 'abcdefg';
str.slice() // 'abcdefg',
str.slice(1) // 'bcdefg', , ,
str.slice(2, str.length-1)// 'cdef', ,
`注意:開始点が負の場合は、length+開始点と見なします.ここでlengthは文字列の長さです.終了点が負の場合、length+終了点とみなされます.終了点を省略するとstringObjの最後までコピーされます.終了点が開始点の前に表示された場合、新しい文字列には何もコピーされません.
split()
指定した区切り文字を使用して、1つの文字列を複数のサブ文字列に分割し、配列で返します.例を見てみましょう.
var str = 'A*B*C*D*E*F*G';
str.split('*') // ["A", "B", "C", "D", "E", "F", "G"]
`splitは文字の中で非常に頻繁に使われる方法で、多くの場合、文字列を配列に回して処理します.例えば、前のlocaleCompare()で使われています.注意:splitは2つのオプションパラメータを受信します.パラメータ1:文字列または正規表現オブジェクトで、文字列を区切る1つ以上の文字を識別します.このパラメータを無視すると、文字列全体を含む単一要素の配列が返されます.パラメータ2:配列で返される要素の数を制限する値.
substr(), substring()
文字列のクリップを切り取り、切り取った文字列を返します.この2つの方法の機能は非常に類似しており、コードのデモを見てみましょう.
var str = 'ABCDEFGHIJKLMN';
str.substr(2) // 'CDEFGHIJKLMN'
str.substring(2) // 'CDEFGHIJKLMN'
str.substr(2, 9) // 'CDEFGHIJK'
str.substring(2, 9) // 'CDEFGHI'
` substrとsubstringの2つの方法の違いは、パラメータ2にあり、substrのパラメータ2は、返されたこの文字列が指定した長さを切り取り、substringのパラメータ2は、この文字列を返す終了点を切り取り、この終了点を含まない.それらのパラメータの1つは、同じ機能で、切り取りの開始位置です. 注意:substrのパラメータ2が0または負数の場合、空の文字列が返され、入力されていない場合は文字列の末尾に切り取られます.substringのパラメータ1とパラメータ2はNANまたは負数であり、0に置き換えられる.
match()
match()メソッドは、文字列内で指定した値を取得したり、1つ以上の正規表現の一致を見つけたりして、検索結果を含む配列を返します.例を見てみましょう.
var str = '2018 ,2019 ,2020 ';
var rex = /\\d+/g // , 1
str,match(rex) // , ['2018', '2019', '2020']
str.match('20')// ["20", index: 0, input: "2018 ,2019 "]
` 注意:matchメソッドが一致しない場合はnullが返されます.マッチングが見つかった場合、matchメソッドはマッチングを配列形式で返し、正規規則がグローバル修飾子gを設定していない場合、matchメソッドが返す配列にはinputとindexの2つの特性があります.inputプロパティには、検索された文字列全体が含まれます.indexプロパティには、検索された文字列全体に一致するサブ文字列の位置が含まれます.
replace() replace、中国語に翻訳するのは置き換えで、1つのターゲット文字列の中のテキストを、自分の必要な文字に置き換えます.replaceは2つのパラメータを受信して、パラメータの1つは置換する必要がある文字あるいは1つの正則の整合規則で、パラメータの2、置換する必要がある文字、仔の実際の原理の中で、パラメータの2、あなたは1つのコールバック関数に変えることができて、具体的な実現はコードを見てください:`
var str = '2018 ,2019 ,2020 ',str1='',str2='';
var rex = /\\d+/g // , 1
str1 = str.replace(rex, '****') // :"**** ,**** ,**** ";
str2 = str.replace(rex, function(item){
console.log(arguments) //
var arr = [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ']
var newStr = '';
item.split('').map(function(i){
newStr += arr[i]
})
return newStr
})
console.log(str2)// : , ,
`
https://user-gold-cdn.xitu.io/2018/9/25/16610b1a7f3edd3f?imageView2/0/w/1280/h/960/format/webp/ignore-error/1
このコード体では、2つの置換を使用しています.1つ目は、パラメータ2を直接置換するための文字として定義することです.2つ目は、パラメータ2を1つのコールバック関数に変換することです.2つの方法は、実際には可能です.これは私たちの仕事のニーズに依存します.上記の例では、大文字に変換すると、では、コールバック関数で行います.実はコールバック関数の内部のメカニズムの中で、正則のマッチング規則によって自分が置換する必要がある文字にマッチングして、マッチングした文字を、コールバック関数の中で自分の論理を書くことができて、それからそれを返して、コールバック関数自身、3つのパラメータを受け取って、パラメータの1つはマッチングした置換する必要がある文字で、パラメータ2は、置換する必要がある文字が元の文字列の中で始まる位置に一致し、パラメータ3は元の文字列である.
search()
searchは、中国語に訳すと検索であり、ターゲット文字列の中で正規規則に一致する文字を検索し、検索すると、ターゲット文字列の中の最初の一致項目の位置を返し、検索しないと1つの-1を返す.`
var str = '2018 ,2019 ,2020 ',str1='',str2='';
var rex = /\\d+/i // , 1
str.search(rex) // 0 0
`
toLocaleLowerCase(), toLocaleUpperCase(),toLowerCase(),toUpperCase()
toLocaleLowerCaseとtoLowerCaseはすべてアルファベットを小文字に変換し、toLocaleUpperCaseとtoUpperCaseはアルファベットを大文字に変換します.toLocaleLowerCaseメソッドとtoLocaleUpperCaseメソッドは、ホスト環境の現在の領域設定を考慮しながら、文字列内の文字を変換します.ほとんどの場合、この結果は、toLowerCaseメソッドとtoUpperCaseメソッドを使用して得られた結果と同じです.言語規則が通常のUnicode大文字と小文字のマッピングと競合する場合、結果は異なります`.
var str = 'abcdefg';
str.toLocaleUpperCase(); // :'ABCDEFG'
str.toUpperCase(); // : 'ABCDEFG'
`
includes(), startsWith(), endsWith()
includes、startsWith、endsWithes 6の新しい方法で、includesはターゲット文字列オブジェクトに文字が含まれているかどうかを検出し、ブール値を返します.startsWithは現在の文字がターゲット文字列の開始部分であるかどうかを検出し、相対的なendwithはターゲット文字列の終了部分であるかどうかを検出します.デモコードを見てください:`
var str = 'Excuse me, how do I get to park road?';
str.includes('how') // :true;
str.startsWith('Excuse') // : true;
str.endsWith('?') // : true;
, 。
var str = 'Excuse me, how do I get to park road?';
str.includes('how', 0) // :true;
str.startsWith('Excuse', 0) // : true;
str.endsWith('?', 0) // : true;
`
repeat() 新しい文字列オブジェクトを返します.新しい文字列は、指定した回数を繰り返した元の文字列に等しいです.パラメータを受信すると、繰り返しの回数を指定します.`
var str = 'http';
str.repeat(3) // : 'httphttphttp';
`注意:この方法は、パラメータが負または正の場合、RangeErrorを開始します.
テンプレート文字列``逆引用符
逆引用符はes 6が新しく導入した定義文字列の方式であり、``で包むには文字列に定義する文字が必要であり、テンプレート文字列(template string)は拡張版の文字列であり、逆引用符で識別される.通常の文字列として使用したり、複数行の文字列を定義したり、文字列に変数を埋め込んだりすることができます.コードデモを見てみましょう.
var str = ''; //
var str1 = `https://juejin.im/timeline`; //
var strHtml = '' +
'- ' +
'
- ' +
'
'; //
var strHtml1 = `
-
-
`; // , , 。
`変数を渡し、テンプレート文字列に変数を埋め込むには、変数名を${}に書く必要があります.括弧の内部には任意のJavaScript式を入れることができ、演算が可能で、オブジェクト属性を参照することができ、テンプレート文字列の中で関数を呼び出すこともできます.
`
var n1 = 'li ',n2 = 'li '
var strHtml = '' +
'- '+n1+'
' +
'- '+n2+'
' +
'
'; //
var strHtml1 = `
- ${n1}
- ${n2}
`; //
document.body.appendChild(strHtml)
`
締めくくり