zoukankan      html  css  js  c++  java
  • 从字符串提取一个列表

    其实这一节,重点是要复习一下字符串的操作

    http://www.runoob.com/jsref/jsref-obj-string.html

    Q:This is a list of items: cherries,limes,oranges,apples.提取这句话中包含的项目列表。注:已(:)开始,已(.)结束。

    A:提取结果:['cherries','limes','oranges','apples']

    1        var sentence='This is one sentence.This is a list of items:'+
    2                     'cherries,oranges,apples,bananas.That was the list of items.';
    3             var start=sentence.indexOf(':');
    4             var end=sentence.indexOf('.',start+1);
    5             var listStr=sentence.substring(start+1,end);
    6             var fruits=listStr.split(',');
    7             console.log(fruits);

    结果

    简单说明一下代码中用到的方法,自己也再记一遍

    indexOf()返回某个指定的字符串值在字符串中首次出现的位置。

        如果没有匹配到字符串则返回-1

        string.indexOf('需检索的字符串值,必须',‘字符串开始检索的位置,合法取值范围0到string.length-1,若省略该参数,则将从字符串的首字符开始检索’)

        !indexOf()区分大小写

        ! lastIndexOf()  相当于从后向前检索

    substring()用于提取字符串中介于两个指定下标之间的字符

           !! 返回的子串包含开始处的字符,但不包含结束处的字符。

         string.substring('规定要提取的子串的第一个字符在string中的位置,必须',‘可选,比要提取的子串的最后一个字符在string中的位置多1’) 

         string.substring(from,to)   参数不可为负!!!!!若要为负使用slice

    substr()在字符串中抽取从开始下标开始的指定数目的字符

          string.substr(start,length);

    split()把字符串分隔成字符数组

    slice(start,end)提取字符串的某个部分,并以新的字符串返回被提取的部分。(感觉和subString很像哎)

            包含start,不包含end

                         如果参数是负数,则该参数规定的是从字符串的尾部开始算起的位置,如-1指的是字符串的最后一个字符……

                

    高级话题:

      分隔后得到的数组元素可能包含空白所产生的部分,如何清理元素两端的空白字符?

    方法一:  

    fruits.forEach(function(elemt,index,arr){
                    arr[index]=elemt.trim();
    }) console.log(fruits);

    trim()移除字符串首尾的空白

    Array.forEach()用于调用数组的每个元素,并将元素传递给回调函数。

    !!forEach()对于空数组是不会执行回调函数的。

      array.forEach(function(currentValue,index,arr){
    
      },thisValue)

     参数说明:

      currentValue  必须。当前元素

      index        可选。当前元素的索引值。

      arr       可选。当前元素所属的数组对象。

           thisValue    可选。传递给函数的值一般用‘this’值。如果这个参数为空,‘undefined’会传递给‘this’值。

    另外一种简单的方法是,给split()传递一个正则表达式。

      var fruits=listStr.split(/s*,s*/);

      s----一个单个的空白字符

      *------匹配0次或多次

  • 相关阅读:
    LiteMDA中支持Generic的BusinessObjectFactory实现
    Domain Object Layer Design and Sample Code for LiteMDA
    [BuildRelease Management]FinalBuilder
    Java RMI之HelloWorld
    深入浅出之正则表达式[转]
    Linux中的sh+source+export
    Scrum资料收集
    [MySQL]安装和启动
    .NET Remoting之Helloworld
    [在windows上使用Unix工具]SUA+Interix+SFU+Utilities and SDK for UNIXbased Applications
  • 原文地址:https://www.cnblogs.com/em2464/p/9125385.html
Copyright © 2011-2022 走看看