JavaScript文字列実用常操紀要

9343 ワード

文字列の切り取り
1.substring()
xString.substring(start,end)
substring()は最もよく使われる文字列の切り取り方法で、2つのパラメータ(パラメータは負の値ではいけません)を受信できます.それぞれ切り取りの開始位置と終了位置です.これは新しい文字列を返します.その内容はstartからend-1までのすべての文字です.パラメータ(end)を省略すると、start位置から最後まで切り取ることを表します.
let str = 'www.jeffjade.com'
console.log(str.substring(0,3)) // www
console.log(str.substring(0))   //www.jeffjade.com
console.log(str.substring(-2))  //www.jeffjade.com (      0)
2.slice()
stringObject.slice(start, end)
slice()方法はsubstring()法と非常に類似しており、導入された二つのパラメータもそれぞれ開始位置と終了位置に対応している.違いは、slice()のパラメータは負の値であってもよく、パラメータが負の値であれば、このパラメータは文字列の末尾から計算される位置を規定している.つまり-1は文字列の最後の文字です.
let str = 'www.jeffjade.com'
console.log(str.slice(0, 3))    // www
console.log(str.slice(-3, -1))  // co
console.log(str.slice(1, -1))   // www.jeffjade.co
console.log(str.slice(2, 1))    // '' (      ,start   end)
console.log(str.slice(-3, 0))   // '' (      ,start   end)
3.substr()
stringObject.substr(start,length)
substr()メソッドは、startの下付きから指定された数の文字を文字列から抽出することができます.その戻り値は、stingObjectのstart(startという文字を含む)から始まるレングス文字列である.lengthが指定されていない場合、返された文字列は、startからストリングObjectまでの末尾の文字を含む.また、startが負の場合は、文字列の末尾から計算することを表します.
let str = 'www.jeffjade.com'
console.log(webStr.substr(1, 3))   // ww.
console.log(webStr.substr(0))      // www.jeffjade.com
console.log(webStr.substr(-3, 3))  // com
console.log(webStr.substr(-1, 5))  // m  (        ,          )
4.スプリット()
str.split([separator][, limit])
  • separatorは、文字列を分割する文字(列)を指定します.separatorは、文字列または正規表現であってもよい.separatorを無視すると、文字列全体の配列形式が返されます.separatorが空の文字列である場合、strは元の文字列の各文字の配列形式を返します.
  • limitの1つの整数は、返される分割フラグメントの数を規定する.split方法は依然として各マッチングのseparatorを分割しているが、戻りの配列は最大limitの要素だけを切り取ることができる.let str='ws.joffjade.com'str.split('.')/'''''www'、'jeffjade's、com'str.split('.',1)/''''''.str.split(').joffjadecom/www
    ところで、この関数は本当に使いやすいです.多くの時に必要な文字を切り取るのは、ある文字に依存します.以上の三つの関数はその位置を知る必要があります.もちろんindexOfなどの方法で入手できます.これは明らかに煩わしいです.splitを借りるのはもっと簡単です.
    クラスの検索方法
    1.indexOf()&includes()
    stringObject.indexOf(searchValue,fromIndex)
    
    indexOf()は、指定された文字列値が文字列で最初に現れる位置を検索するために使用されます.二つのパラメータを受信できます.search Valueは検索するサブ文字列を表します.from Indexは検索の開始位置を表します.省略すると開始位置から検索します.
    let str = 'www.jeffjade.com'
    console.log(str.indexOf('.'))     // 3
    console.log(str.indexOf('.', 1))  // 3
    console.log(str.indexOf('.', 5))  // 12
    console.log(str.indexOf('.', 12)) // -1
    
    indexOf()は指定された文字列値が文字列で初めて現れる位置を検索するために用いられますが、文字列に指定された文字列があるかどうかを判断する場面が多いです.コードはこのようになります.
    if (str.indexOf('yoursPecifiedStr') !== -1) {
        // do something
    }
    
    このような場面でES 6言語のincludes()がもっと優雅に見えると知っています.includes()メソッドは、文字列が別の文字列に含まれているかどうかを判断するために使用され、trueを返す場合はfalseを返します.
    str.includes(searchString[, position])
    
    search Stringが検索するサブ文字列.positionを選択します.現在の文字列のどのインデックス位置からサブ文字列を検索しますか?デフォルトは0です.注意したいのは、includes()は大文字と小文字を区別しています.
    'Blue Whale'.includes('blue'); // returns false
    '        '.includes('   '); // returns true
    if (str.includes('yoursPecifiedStr')) {
        // do something(           ?Yeah,              )
    }
    
    2.lastIndexOf()
    stringObject.lastIndexOf(searchValue,fromIndex)
    
    lastIndexOf()文法はindexOf()と類似しています.指定されたサブ文字列値の最後に現れた位置を返します.検索順序は後から前に進みます.
    let str = 'www.jeffjade.com'
    console.log(str.lastIndexOf('.'))     // 12
    console.log(str.lastIndexOf('.', 1))  // -1
    console.log(str.lastIndexOf('.', 5))  // 3
    console.log(str.lastIndexOf('.', 12)) // 12
    
    search()
    stringObject.search(substr)
    stringObject.search(regexp)
    
    search()メソッドは、文字列で指定されたサブ文字列を検索したり、正規表現と一致するサブ文字列を検索します.最初のマッチするサブ文字列の開始位置を返します.マッチしていない場合は-1を返します.
    let str = 'www.jeffjade.com'
    console.log(str.search('w'))    // 0
    console.log(str.search(/j/g))   // 4
    console.log(str.search(/\./g))  // 3
    
    match()メソッド
    stringObject.match(substr)
    stringObject.match(regexp)
    
    match()メソッドは、指定された値を文字列内で検索したり、1つ以上の正規表現のマッチングを見つけることができます.パラメータにサブ文字列が入ってきた場合、またはグローバルマッチングが行われていない正規表現の場合、match()法は開始位置からマッチを行い、結果にマッチしていない場合はnullを返します.そうでなければ、1つの配列に戻ります.この配列の0番目の要素はマッチテキストであり、この他に、返した配列は2つのオブジェクト属性indexとinputを含みます.それぞれはテキストにマッチする開始文字索引とstring Objectの参照を表します.
    let str = '#1a2b3c4d5e#';
    console.log(str.match('A'));    //  null
    console.log(str.match('b'));    //  ["b", index: 4, input: "#1a2b3c4d5e#"]
    console.log(str.match(/b/));    //  ["b", index: 4, input: "#1a2b3c4d5e#"]
    
    パラメータが大域的に整合した正規表現である場合、最後までは開始位置から何度もマッチします.結果にマッチしていない場合は、nullを返します.そうでないと、行列が返されます.配列には、必要に応じたすべてのサブ文字列が格納され、indexとinput属性がありません.
    let str = '#1a2b3c4d5e#'
    console.log(str.match(/h/g))     //  null
    console.log(str.match(/\d/g))    //  ["1", "2", "3", "4", "5"]
    
    その他の方法
    replace()の方法
    stringObject.replace(regexp/substr,replacement)
    
    replace()メソッドは文字列置換動作を行うために用いられ、前者は置換されたサブ文字列(正則であってもよい)であり、後者は置換テキストである.最初のパラメータがサブ文字列であるか、グローバルマッチングが行われていない正規表現が入ってきた場合、replace()方法は一度だけ置き換えられます.すなわち、一番前の文字列を置換して、置換後の結果文字列を返します.
    let str = 'www.jeffjade.com'
    console.log(str.replace('w', 'W'))   // Www.jeffjade.com
    console.log(str.replace(/w/, 'W'))   // Www.jeffjade.com
    
    最初のパラメータが入ってきた大域一致の正規表現がある場合、replace()は条件に合ったサブ文字列を何度も置換し、最後に何度も置換された結果文字列を返します.
    let str = 'www.jeffjade.com'
    console.log(str.replace(/w/g, 'W'))   // WWW.jeffjade.com
    
    toLowerCase()&toUpperCase()
    stringObject.toLowerCase()
    stringObject.toUpperCase()
    
    LowerCase()メソッドは文字列の中の大文字を小文字に変換でき、toUpperCase()方法は文字列の小文字を大文字に変換することができます.
    let str = 'www.jeffjade.com'
    console.log(str.toLowerCase())   // www.jeffjade.com
    console.log(str.toUpperCase())   // WWW.JEFFJADE.COM
    
    テンプレート文字列
    これもES 6が導入したばかりの新しい文法で、伝統的な出力Stringテンプレートの不具合を解決します.その機能の強大さ、設計の親密さ、本当に極めて大きい満足感を得られて、良いです.さらに、MVVMの先端フレームワークが盛んに行われている時代には、ES 6の文法を使うことも、自分で互換性を気にする必要がなく、Dom Templateを作ることに対しては鬼に金棒であり、手放せない.彼女の使用について、阮一峰はECMAScript 6で入門したことがあります.詳しい説明と例があります.ここでは詳しく説明しません.このように操作してもいいですか?
    function ncieFunc() {
      return "       ";
    }
    var niceMan = "   ";
    var jadeTalk = `        
    ${ncieFunc()} , ${niceMan} 《 》。 ` console.log(jadeTalk)
    運行しています.Chrome Cosolieの出力は以下の通りです.
           
            ,
            《   》。
    
    組み合わせ方法
    JavaScriptが提供しているString Appを詳しく見ると、かなり多いのがあります.廃棄するものもあります.未来のバージョンで出るものもあります.この中には多くの有用なものがあります.例えば、charAt(x)、charCodeAt(x)、concat(v 1、v 2、…)、from CharCode(c 1、c 2、…)など、ES 6の文字列の拡張があります.実際のコード生産においては、これらの基本的な方法を用いて、コンビネーションパンチを打ち、その需要を解決する必要がある場合が多い.明らかにプロトタイプの属性を借りて、自造した各コースの拳法をStringの対象に戻して、夜が明けました.このステップは個人の好みによって、ここで玉を引くために二段投げます.
    文字列の反転
    String.prototype.reverse = function () {
        return this.split('').reverse().join('')
    }
    
    空白行を削除
    String.prototype.removeBlankLines = function () {
        return this.replace(/(
    [\s\t]*\r*
    )/g, '
    ').replace(/^[
    \r
    \t]*|[
    \r
    \t]*$/g, '') }
    Stringを配列に変換
  • を一次元配列シーンに変換するには、あるサブ文字列によって変換され、直接にスプリットを使えばいいです.ルールが統一されていないなら、どうぞご自由に.
  • let Str = '   ,  ,   ,  ,   ,   ,  ,   '
    let hallAllOfFameArr = Str.split(',')
    console.log(hallAllOfFameArr)
    // ["   ", "  ", "   ", "  ", "   ", "   ", "  ", "   "]
    
  • は二次元配列
  • に変換される.
    String.prototype.removeBlankLines = function () {
        return this.replace(/(
    [\s\t]*\r*
    )/g, '
    ').replace(/^[
    \r
    \t]*|[
    \r
    \t]*$/g, '') } String.prototype.strTo2dArr = function(firstSplit, secondSplit){ var contentStr = this.removeBlankLines(), contentStrArr = contentStr.split(firstSplit), resultArr = contentStrArr.map((element) => { return element.split(secondSplit) }) return resultArr } var str = ` , 。 , 。 , 。 , 。 ` console.log(str.strTo2dArr('
    ', ','))
    運転の結果、出力は以下の通りです.
    [ [ ‘       ’, ‘       。’ ],
    [ ‘       ’, ‘       。’ ],
    [ ‘       ’, ‘       。’ ],
    [ ‘       ’, ‘       。’ ] ]
    
    抗日戦争の時期、陳寅謹さんは傅斯年への手紙の中で、「弟の性格は安眠飽食しなければならず、作文もできない.富もあり、楽もない.詩も作れない.平生はたまに安眠飽食がある.だから私は文のために、一生は富もなければ楽もない.だからいつも詩をよく作れない」と冗談めかして言った.恐らくは感慨を寄せた悟りの言葉でもある.自由独立の経済生活は自由思想と独立人格の強い後ろ盾と実際保障である.博ということを書くのも同じです.毎日需要の変化に疲れて、あくせく暮らしています.たまには暇な時の力があって、どうして苦労に耐えられますか?唯は塁コードの隙間で、少し記録をして、積み重ねて作成します.このようにして得られた糊口の奋闘は、将来のある日を愿っています.豊かで楽しい时があれば、话したいことを话し、やりたいことをやってもいいです.
    文章の出所:http://www.jeffjade.com
    原文のリンク:http://www.jeffjade.com/2016/11/24/116-JavaScript-string-operation/