字符串查找和替换函数
要在字符串中搜索字符串,有几个函数:
indexOf( searchString )
和 lastIndexOf( searchString )
indexOf()
将返回字符串中第一次出现 searchString
的索引。如果找不到 searchString
,则返回 -1
。
var string = "Hello, World!";
console.log( string.indexOf("o") ); // 4
console.log( string.indexOf("foo") ); // -1
同样,如果没有找到,lastIndexOf()
将返回最后一次出现 searchstring
或 -1
的索引。
var string = "Hello, World!";
console.log( string.lastIndexOf("o") ); // 8
console.log( string.lastIndexOf("foo") ); // -1
includes( searchString, start )
includes()
将返回一个布尔值,告诉 searchString
是否存在于字符串中,从索引 start
开始(默认为 0)。如果你只需要测试子字符串的存在,这比 indexOf()
更好。
var string = "Hello, World!";
console.log( string.includes("Hello") ); // true
console.log( string.includes("foo") ); // false
replace( regexp|substring, replacement|replaceFunction )
replace()
将返回一个字符串,其中出现的所有子字符串都与 RegExp regexp
或字符串 substring
匹配,字符串为 replacement
或 replaceFunction
的返回值。
请注意,这不会修改字符串,但返回带有替换的字符串。
var string = "Hello, World!";
string = string.replace( "Hello", "Bye" );
console.log( string ); // "Bye, World!"
string = string.replace( /W.{3}d/g, "Universe" );
console.log( string ); // "Bye, Universe!"
replaceFunction
可用于正则表达式对象的条件替换(即,与 regexp
一起使用)。参数按以下顺序排列:
参数 | 含义 |
---|---|
match |
匹配整个正则表达式的子字符串 |
g1 ,g2 ,g3 ,… |
正则表达式中的匹配组 |
offset |
整个字符串中匹配的偏移量 |
string |
整个字符串 |
请注意,所有参数都是可选的。
var string = "heLlo, woRlD!";
string = string.replace( /([a-zA-Z])([a-zA-Z]+)/g, function(match, g1, g2) {
return g1.toUpperCase() + g2.toLowerCase();
});
console.log( string ); // "Hello, World!"