js中indexOf()和lastIndexOf()方法

本文介绍JavaScript中indexOf()和lastIndexOf()方法的应用,这两种方法用于在字符串中查找子串的位置,包括如何处理大小写敏感问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[b]indexOf()和lastIndexOf()方法——一个字符串中查找另一个字符串
[/b]
indexOf()方法和lastIndexOf()方法用于查找一个字符串中是否包含了另一个字符串。包含在另一个字符串中的字符串通常称为字符串。仅需要某串信息中的一部分时,就可以使用这两个方法。例如,在“小测试”程序中,用户输入一个文本答案,就需要检查该字符串是否包含了某些的关键字。
indexOf()和lastIndexOf()方法都带两个参数:
1 需要查找的字符串
2 开始查找的字符位置(可选)
字符位置从0开始。如果不包含第二个参数,就从字符串开头开始搜索
indexOf()和lastIndexOf()方法的返回值是查找到的子串在字符串中的位置,它也是基于0的,因此,如果在字符串开头找到子串,则返回0.如果没有找到子串,则返回-1.
例如,要在字符串“Hello jeremy.How are you Jeremy”中查找子串“Jeremy”,可以使用如下代码:

var myString = "Hello jeremy.How are you Jeremy";
var foundAtPosition;

foundAtPosition = myString.indexOf("Jeremy");
alert(foundAtPosition);

以上代码将弹出一个消息框,其中包含数组26,这是“Jeremy”的字符位置,为什么是26呢?显然,它是字符串中第二个“Jeremy”出现的位置,而不是第一个“jeremy”出现的位置6。这是因为JavaScript是区分大小写,如果输入的是IndexOf(),而不是indexOf(),则JavaScript会报告错误。同样,“jeremy”与“Jeremy”是不同的,大小写错误非常普遍,即使是编程专家也很容易犯此类错误。所以编程时最好特别注意。
前面介绍了indexOf()方法,但lastIndexOf()方法与之区别是indexOf()方法从字符串的开头或第二个参数指定的位置开始向后查找,而lastIndexOf()方法从字符串的结尾或指定的位置向字符串的开头查找。

var myString = "Hello Jeremy.How are you Jeremy";
var foundAtPosition;

foundAtPosition = myString.indexOf("Jeremy");
alert(foundAtPosition);

coundAtPosition = myString.lastIndexOf("Jeremy");
alert(foundAtPosition);

在本例子中,第一次使用indexOf(),找到第一个“Jerermy”(把上一个例子中的“jeremy”改为正确的大小写),警告框显示这个结果,即字符串位置6,接着使用lastIndexOf()来查找,它从字符串的结尾开始查找,因此找到的第一个“Jeremy”是字符串中字符位置为26的最后一个“Jeremy”,因此,第二个警告框显示结果为26.
### JavaScript `indexOf` `lastIndexOf` 方法用法 #### 使用场景 字符串对象提供了多种用于查找子串的方法,其中两个常用的是 `indexOf` `lastIndexOf`。这两个方法都返回指定值首次出现的位置索引;如果未找到,则返回 `-1`。 #### `indexOf` 方法详解 此方法从左向右搜索给定的子串,并返回其第一次出现处的字符位置[^3]: ```javascript var str = "Hello world"; console.log(str.indexOf("world")); // 输出: 6 ``` 当目标不存在于源字符串内时会得到负数的结果: ```javascript var str = "Hello world"; console.log(str.indexOf("universe")); // 输出: -1 ``` 还可以提供第二个参数来设定开始搜索的位置: ```javascript var str = "Blue Whale"; console.log(str.indexOf('l', 4)); // 输出: 9 (因为是从第四个位置之后找'l') ``` #### `lastIndexOf` 方法详解 该函数同样用来定位某个特定值所在之处,不过它是按照由右至左的方向来进行扫描并给出最后一次匹配项所在的下标: ```javascript var sentence = 'To be or not to be.'; console.log(sentence.lastIndexOf('be')); // 输出: 17 ('be'最后出现的地方) ``` 对于多重复现的情况特别有用: ```javascript var text = "The quick brown fox jumps over the lazy dog."; console.log(text.lastIndexOf("the")); // 输出: 31 (区分大小写) ``` 值得注意的是,在调用这些方法之前创建了一个新的字符串实例: ```javascript var txt = new String("string"); console.log(txt.indexOf("ri")); // 正常工作 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值