1.indexOf()
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
如果没有找到匹配的字符串则返回 -1。
注意: indexOf() 方法区分大小写。
语法
string.indexOf(searchvalue,start)
参数值
参数 | 描述 |
---|---|
searchvalue | 必需。规定需检索的字符串值。 |
start | 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 string Object.length - 1。如省略该参数,则将从字符串的首字符开始检索。 |
返回值
类型 | 描述 |
---|---|
Number | 查找指定字符串第一次出现的位置,如果没找到匹配的字符串则返回 -1。 |
实例
查找字符串 “welcome”:
var str="Hello world, welcome to the universe.";
var n=str.indexOf("welcome");
console.log(n)
//13 //从起始位置 (0) 开始计算,空格也算一个字符。
2.lastIndexOf()
lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,如果指定第二个参数 start,则在一个字符串中的指定位置从后向前搜索。
注意: 该方法将从后向前检索字符串,但返回是从起始位置 (0) 开始计算子字符串最后出现的位置。 看它是否含有字符串。
开始检索的位置在字符串的 start 处或字符串的结尾(没有指定 start 时)。
如果没有找到匹配字符串则返回 -1 。
注意:lastIndexOf() 方法是区分大小写的!
语法
string.lastIndexOf(searchvalue,start)
参数值
参数 | 描述 |
---|---|
searchvalue | 必需。规定需检索的字符串值。 |
start | 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的最后一个字符处开始检索。 |
返回值
类型 | 描述 |
---|---|
Number | 查找的字符串最后出现的位置,如果没有找到匹配字符串则返回 -1。 |
实例
查找字符串 “runoob” 最后出现的位置:
var str="I am from runoob,welcome to runoob site.";
var n=str.lastIndexOf("runoob");
console.log(n)
//28 //从起始位置 (0) 开始计算,空格也算一个字符。
3.search()
search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。
如果没有找到任何匹配的子串,则返回 -1。
语法
string.search(searchvalue)
参数值
参数 | 描述 |
---|---|
searchvalue | 必须。查找的字符串或者正则表达式。 |
返回值
类型 | 描述 |
---|---|
Number | 与指定查找的字符串或者正则表达式相匹配的 String 对象起始位置。 |
实例
执行一次对大小写敏感的查找:
var str="Mr. Blue has a blue house";
console.log(str.search("blue"));
//15
4.match()
match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
注意: match() 方法将检索字符串 String Object,以找到一个或多个与 regexp 匹配的文本。这个方法的行为在很大程度上有赖于 regexp 是否具有标志 g。如果 regexp 没有标志 g,那么 match() 方法就只能在 stringObject 中执行一次匹配。如果没有找到任何匹配的文本, match() 将返回 null。否则,它将返回一个数组,其中存放了与它找到的匹配文本有关的信息。
语法
string.match(regexp)
参数值
参数 | 描述 |
---|---|
regexp | 必需。规定要匹配的模式的 RegExp 对象。如果该参数不是 RegExp 对象,则需要首先把它传递给 RegExp 构造函数,将其转换为 RegExp 对象。 |
返回值
类型 | 描述 |
---|---|
Array | 存放匹配结果的数组。该数组的内容依赖于 regexp 是否具有全局标志 g。 如果没找到匹配结果返回 null 。 |
实例
全局查找字符串 “ain”,且不区分大小写:
var str="The rain in SPAIN stays mainly in the plain";
var n=str.match(/ain/gi);
console.log(n)
//['ain', 'AIN', 'ain', 'ain']
判断是否微信浏览器:
function is_weixn(){
var ua = navigator.userAgent.toLowerCase();
if(ua.match(/MicroMessenger/i)=="micromessenger") {
return true;
} else {
return false;
}
}
5.replace()
replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
该方法不会改变原始字符串。
语法
string.replace(searchvalue,newvalue)
参数值
参数 | 描述 |
---|---|
searchvalue | 必须。规定子字符串或要替换的模式的 RegExp 对象。 请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。 |
newvalue | 必需。一个字符串值。规定了替换文本或生成替换文本的函数。 |
返回值
类型 | 描述 |
---|---|
String | 一个新的字符串,是用 replacement 替换了 regexp 的第一次匹配或所有匹配之后得到的。 |
实例
执行一个全局替换:
var str="Mr Blue has a blue house and a blue car";
var n=str.replace(/blue/g,"red");
console.log(n)
//'Mr Blue has a red house and a red car'
执行一个全局替换, 忽略大小写:
var str="Mr Blue has a blue house and a blue car";
var n=str.replace(/blue/gi, "red");
console.log(n)
//'Mr red has a red house and a red car'
判断该字段是否存在:
var a="Microsofts";//要判断的字符
var str="Visit Microsoft! Visit Microsoft!";
var n=str.replace(a,"Runoob");
console.log(n==str)//为true表示不存在,false,表示n替换成功了str里的字符,表示存在