JavaScript 字符串搜索

用于搜索字符串的 JavaScript 方法:

  • String.indexOf()
  • String.lastIndexOf()
  • String.startsWith()
  • String.endsWith()

String.indexOf()

indexOf() 方法返回指定文本在字符串中第一次出现(的位置)的索引:

let str = "Please locate where 'locate' occurs!";

document.getElementById("demo").innerHTML = str.indexOf("locate"); //7 返回值

String.lastIndexOf()

lastIndexOf() 方法返回指定文本在字符串中最后一次出现的索引:

let str1="my name is Rose";
document.getElementById("demo1").innerHTML=str1.lastIndexOf("Rose")
//11  返回

//没找到就会返回-1

如果未找到文本,indexOf()lastIndexOf() 都返回 -1

let str = "Please locate where 'locate' occurs!";
str.lastIndexOf("Bill")    // 返回 -1

两种方法都接受第二个参数作为搜索的开始位置

lastIndexOf() 方法向后搜索(从末尾到开头),意思是:如果第二个参数是 15,则从位置 15 开始搜索,一直搜索到字符串的开头。

let str2 ="Nice to meet you";
document.getElementById("demo2").innerHTML=str2.lastIndexOf("to",5);

String.search()

search() 方法在字符串中搜索指定值并返回匹配的位置:

let str = "Please locate where 'locate' occurs!";
str.search("locate")     // 返回 7

indexOf()search() 这两个方法,相等吗?

它们接受相同的参数,并返回相同的值?

这两种方法并不相等。差别如下:

  • search() 方法不能接受第二个起始位置参数。
  • indexOf() 方法不能采用强大的搜索值(正则表达式)。

String.match()

match() 方法根据正则表达式在字符串中搜索匹配项,并将匹配项作为 Array 对象返回。

正则表达式不包含 g 修饰符(执行全局搜索),match() 方法将只返回字符串中的第一个匹配项

let text = "My name  is rose  I like singing Nice to meet you"; 
document.getElementById("demo3").innerHTML = text.match(/n/g);

执行不区分大小写的全局搜索:

let text1 = "My name  is rose  I like singing Nice to meet you";
document.getElementById("demo4").innerHTML =text.match(/m/gi)

String.includes()

如果字符串包含指定值,includes() 方法返回 true。(有就返回true无就返回false)

let text = "My name  is rose  I like singing Nice to meet you.";
text.includes("name")    // 返回 true

语法

string.includes(searchvalue, start)

searchvalue

必需。需要搜索的字符串。

start

可选。默认为 0. 开始搜索的位置。

返回:

如果字符串包含该值则返回 true

,否则返回 false

let text2 ="My name  is rose  I like singing Nice to meet you";
document.getElementById("demo5").innerHTML=text2.includes("is" ,10)// 返回 false

String.startsWith()

如果字符串以指定值开头,则 startsWith() 方法返回 true,否则返回 false

let text3 ="My name  is rose  I like singing Nice to meet you";
document.getElementById("demo6").innerHTML=text2.startsWith("M" )// 返回 true
参数值

参数

描述

searchvalue

必需。需要搜索的值。

start

可选。默认为 0。开始搜索的位置。

let text3 ="My name  is rose  I like singing Nice to meet you";
document.getElementById("demo6").innerHTML=text2.startsWith("I", 15)

startsWith() 方法区分大小写。

String.endsWith()

如果字符串以指定值结尾,则 endsWith() 方法返回 true,否则返回 false

let text4 ="My name  is rose  I like singing Nice to meet you";
document.getElementById("demo6").innerHTML=text4.endsWith("you")   // 返回 true
参数值

参数

描述

searchvalue

必需。需要搜索的值。

length

可选。要搜索的长度。

检索以 "like" 结尾的字符串的前 11 个字符:(开头到like结尾的最后位置)

let text4 ="I like singing";
document.getElementById("demo6").innerHTML=text4.endsWith("like",6)

注释:endsWith() 方法区分大小写。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值