点击切换帐号登陆
帐号密码登陆

从字符串提取一个列表

2.从字符串提取一个列表
==================

**知识点**
1.indexOf()
2.substring()和substr()
3.split()
4.forEach()
5.trim()

-------------------------------------------------

1.indexOf()
-----------
- *功能*: 返回数组中某个指定的元素第一次出现的位置
- *语法*: indexOf(item,start): 
- *参数*: item要查询的字符串, start起始查询的索引,默认0
- *返回值*: 如果在数组中没找到指定元素则返回 -1。
- *提示*: 如果你想查找字符串最后出现的位置,请使用 `lastIndexOf()` 方法
- *建议*: 可用于快速确定字符串是否存在指定的字符串

--------------------------------------------------------------

2.substring() / substr()
------------------------
- *功能*: 二者功能类似, 返回指定索引区间内的字符串
- *语法*:
    + substring(start, end): 返回起始索引与结束索引之间的字符
    + substr(start, length): 返回从指定索引开始,截取指定长度的字符串
- *场景*: substring()效率理论上会更高一些

--------------------------------------------------------------

3.split()
---------
- *功能*: 把一个字符串分割成字符串数组
- *语法*: string.split(separator,limit)
- *参数*: separator分隔符:默认为空格,可自定义, limit: 限制返回的元素数量
- *返回*: 返回数组Array
- *提示*: 数组中有一个`join()`函数与它的功能相反,将数组拼装为字符串

--------------------------------------------------------------

4.forEach()
-----------
- *功能*: 遍历数组的每个元素,并将元素传递给回调函数
- *语法*: array.forEach(function(value, index, arr), this)
- *参数*: 必须是一个回调函数,有三个参数
    + value: 必需,当前元素
    + index: 可选,当前元素的索引值
    + arr: 可选,当前元素所属的数组对象
    + this: 可选,默认`this`,为空/`undefined`用this值
- *返回*: 无
- *场景*: 遍历数组
- *提示*: 遍历数组,还可以用for/for~in/for-of/,但都没有forEach()方便

--------------------------------------------------------------

5.trim()
--------
- *功能*: 去除字符串前后空白字符
- *语法*: string.trim()
- *提示*: IE9以下版本不能使用

--------------------------------------------------------------

### 示例代码:

```html
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>从字符串提取一个列表</title>
</head>
<body>
<script>
    var brands = 'Mobile brand lists: iPhone, HUAWEI, MI, OPPO, VIVO.';
    // 目标是生成: [iPhone, HUAWEI, MI, OPPO, VIVO]

    // 获取切割的起始位置, indexOf('str'), 返回指定字符串在原串中首次出现的索引
    var start = brands.indexOf(':');

    //获取目标串的结束位置, indexOf()第二个参数是查询的起始索引,默认从0开始
    var end = brands.indexOf('.', start+1);

    // 方法1: 传统模式
    // 获取到指定区间的字符串,substring(起始索引, 结束索引),start+1跳过冒号
    var lists = brands.substring(start+1, end);

    //使用','切割字符串, 将获取到的每一个字符串填充到一个数组中
    var brandArr = lists.split(',');

    // 遍历数组,并清理每个子串的空格
    brandArr.forEach(function (value, index, array) {
        array[index] = value.trim();
    });

    // 查看最终生成的数组列表
    console.log(brandArr);

    // 方法2:
    // 也可以使用substr(起始索引,截取长度)
    var lists1 = brands.substr(start+1, end-(start+1)).trim();

    // 使用正则,不需要再遍历数组,/\s*,\s*/:匹配逗号前后0或多个空白字符
    var brandArr1 = lists1.split(/\s*,\s*/);

    // 查看生成的数组列表
    console.log(brandArr1);

    // 方法3: 链式调用进一步简化代码
    var brandArr3 = brands.substr(start+1, end-(start+1)).trim().split(/\s*,\s*/);

    // 查看生成的数组列表
    console.log(brandArr3);

</script>
</body>
</html>
```


任务

?不会了怎么办
无数据提示暂无评论哟...我要评论
网站导航
标签地图
学习路径
视频教程
开发软件
旗下子站
php中文网
phpstudy
技术文章
文档工具
关于我们
企业合作
人才招聘
联系我们
讲师招募
QQ交流群
QQ官方交流群
微信公众号
微信公众号