自学js第七天:String字符串基础方法

String字符串基础方法

1.charAt()

方法从一个字符串中返回指定的字符。

var str ='你好,我是海牙老师';
console.log(str.charAt(3)); 
//返回了 str[3]的值

参数( 如果指定的 index 值超出了该范围,则返回一个null空字符串)
index
字符串中的字符从左向右索引,第一个字符的索引值为 0,最后一个字符(假设该字符位于字符串 stringName 中)的索引值为 stringName.length - 1。。
返回值
指定字符串

2.indexOf(返回下标)

方法返回在字符串中可以找到一个给定字符的第一个首字对应索引,
如果字符不存在,则返回-1。
var plants = '西红柿,黄瓜,芹菜,豆角,土豆,黄瓜'; //length 18

console.log(plants.indexOf('黄瓜')); 
//4

console.log(plants.indexOf('黄瓜',5)); 
//16

console.log(plants.indexOf('黄')); 
//4

console.log(plants.indexOf('黄瓶')); 
//-1

console.log(plants.indexOf('大象')); 
//-1

console.log(plants.indexOf('')); 
//0   空字符串返回下标0,因为整个字符串都是字符'',第一个内容字符即下标0就是''

console.log(plants.indexOf( )); 
//未设置确切字符串则默认强制给undefined进去,然后没找到内容就返回-1.

console.log(plants.indexOf('',5)); 
//5, 整个字符串都是字符'',因此直接起始下标5的内容,就是一个'',直接返回5

//特殊,第二个参数
console.log(plants.indexOf('',19)); //如果检索的起始位置超出总长度,则直接返回总长度....
//18 超出长度的参数会返回长度

参数
str.indexOf(searchValue, [fromIndex])

searchValue
要被查找的字符串值。
如果没有提供确切地提供字符串,searchValue 会被强制设置为 "undefined", 然后在当前字符串中查找这个值。
举个例子:'undefined'.indexOf() 将会返回0,因为 undefined 在位置0处被找到,但是 'undefine'.indexOf() 将会返回 -1 ,因为字符串 'undefined' 未被找到。

fromIndex 可选
数字表示开始查找的位置。可以是任意整数,默认值为 0。
如果 fromIndex 的值小于 0,或者大于 str.length ,那么查找分别从 0 和str.length 开始。(译者注:  fromIndex 的值小于 0,等同于为空情况; fromIndex 的值大于 str.length ,那么结果会直接返回 -1 。)
举个例子,'hello world'.indexOf('o', -5) 返回 4 ,因为它是从位置0处开始查找,然后 o 在位置4处被找到。另一方面,'hello world'.indexOf('o', 11) (或 fromIndex 填入任何大于11的值)将会返回 -1 ,因为开始查找的位置11处,已经是这个字符串的结尾了。
返回值
查找的字符串 searchValue 的第一次出现的索引,如果没有找到,则返回 -1
Indexof 综合字符串方法的小案例:查重
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>字符串基础方法练习</title>
</head>

<body>
  <script>
    var str = '假如给我三天光明,我会干什么? 假如给我帅气面孔,我会干什么? 假如给我一个大西瓜,我会干什么? 假如给我一瓶冰阔落,我会干什么?';

    //'[假如]给我三天光明,我会干什么? [假如]给我帅气面孔,我会干什么? [假如]给我一个大西瓜,我会干什么? [假如]给我一瓶冰阔落,我会干什么?';

    //找到这句话中 所有的 "假如" 的下标位置indexof  (可以ctrl + F 哈哈哈查找替换)

    /*
      indexOf (目标,起始下标)
      indexOf 找不到的时候 返回 -1
      循环
        for
    */

    // console.log(str.indexOf('假如'));
    var idx = 0;
    var targetIdx = 0;
    while (str.indexOf('假如', idx) !== -1) {
        //不能返回-1时即true一直都能到时,就循环一直到'假如', 直到==-1false就结束
      targetIdx = str.indexOf('假如', idx);
      console.log(targetIdx);
      idx = targetIdx + 2;
    }

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PcVXHhzY-1620234943162)(C:\Users\tuyue\AppData\Local\Temp\1616571040071.png)]

3.split() 返回字符串数组

方法使用指定的分隔符字符串将一个String对象分割成子字符串数组,以一个指定的分割字串来决定每个拆分的位置。

var str ='你好,我是海牙老师';
var arr = str.split(',');

console.log(arr); 
// ['你好','我是海牙老师']

var str ='你好,我是海牙老师';
var arr = str.split('');

console.log(arr); 
// ["你", "好", ",", "我", "是", "海", "牙", "老", "师"]

var str ='你好,我是海牙老师'; 
var arr = str.split();//如果在str中省略或不出现分隔符,则返回的数组包含一个由整个字符串组成的元素

console.log(arr); 
//["你好,我是海牙老师"]



var str ='你好,我,是海,牙老,师';
var arr = str.split(',',3); //传递第二个参数,作用是规定拆分最大数,限定拆三个分隔符出来.

console.log(arr); 
// ["你好", "我", "是海"]

参数
str.split([separator[, limit]])
separator
指定表示每个拆分应发生的点的字符串。separator 可以是一个字符串或正则表达式。 如果纯文本分隔符包含多个字符,则必须找到整个字符串来表示分割点。如果在str中省略或不出现分隔符,则返回的数组包含一个由整个字符串组成的元素。如果分隔符为空字符串,则将str原字符串中每个字符的数组形式返回。
limit
一个整数,限定返回的分割片段数量。当提供此参数时,split 方法会在指定分隔符的每次出现时分割该字符串,但在限制条目已放入数组时停止。如果在达到指定限制之前达到字符串的末尾,它可能仍然包含少于限制的条目。新数组中不返回剩下的文本。
返回值
返回源字符串以分隔符出现位置分隔而成的一个 数组(Array)

4.slice(和数组的slice方法一样)

方法提取某个字符串的一部分,并返回一个新的字符串,且不会改动原字符串。
var str = 'The quick brown fox jumps over the lazy dog.';
//slice方法不会改动原字符串。
console.log(str.slice(31));
//  "the lazy dog."

console.log(str.slice(4, 19));
//  "quick brown fox"

console.log(str.slice(-4));
//  "dog."

console.log(str.slice(-9, -5));
//  "lazy"


参数
str.slice(beginIndex[, endIndex])

beginIndex
从该索引(以 0 为基数)处开始提取原字符串中的字符。如果值为负数,会被当做 strLength + beginIndex 看待,这里的strLength 是字符串的长度(例如, 如果 beginIndex 是 -3 则看作是:strLength - 3)

endIndex
可选。在该索引(以 0 为基数)处结束提取字符串。如果省略该参数,slice() 会一直提取到字符串末尾。如果该参数为负数,则被看作是 strLength + endIndex,这里的 strLength 就是字符串的长度(例如,如果 endIndex 是 -3,则是, strLength - 3)
返回值
返回一个从原字符串中提取出来的新字符串

5.trim(删除字符串的前后空白符,细节)

方法会从一个字符串的两端删除空白字符。在这个上下文中的空白字符是所有的空白字符 (space, tab, no-break space 等) 以及所有行终止符字符(如 LF,CR等)。

var greeting = '   Hello world!   ';

console.log(greeting);
//  "   Hello world!   ";

console.log(greeting.trim());
//  "Hello world!";

返回值
一个依据调用字符串两端去掉空白的新字符串。

以及所有行终止符字符(如 LF,CR等)。

var greeting = '   Hello world!   ';

console.log(greeting);
//  "   Hello world!   ";

console.log(greeting.trim());
//  "Hello world!";

返回值
一个依据调用字符串两端去掉空白的新字符串。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值