用于搜索字符串的 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. 开始搜索的位置。 |
返回: | 如果字符串包含该值则返回 ,否则返回 。 |
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()
方法区分大小写。