JS内置对象 --- String字符串相关方法
在JavaScript中,字符串(String)是一种基本的数据类型,用于表示文本数据。字符串由字符的序列组成,可以包含字母、数字、符号和空格等。
JavaScript还提供了很多内置方法来操作字符串,例如转换大小写、去除空格、分割字符串等。可以使用这些方法来满足不同的字符串处理需求。
总而言之,字符串在JavaScript中是一种重要的数据类型,它提供了很多方法和操作符来处理和操作文本数据。对于字符串处理需求,JavaScript提供了丰富的功能和工具。
charAt() 返回在指定位置的字符
string.charAt(index)
index 必需。表示字符串中某个位置的数字,即字符在字符串中的位置。
var str = "HELLO WORLD";
var n = str.charAt(2) // 'L'
concat() 连接字符串
连接两个或更多字符串,并返回新的字符串
string.concat(string1, string2, ..., stringX)
string1, string2, ..., stringX 必需。将被连接为一个字符串的一个或多个字符串对象。
const hello = "Hello, ";
console.log(hello.concat("Kevin", ". Have a nice day."));
// Hello, Kevin. Have a nice day.
const greetList = ["Hello", " ", "Venkat", "!"];
"".concat(...greetList); // "Hello Venkat!"
"".concat({}); // "[object Object]"
"".concat([]); // ""
"".concat(null); // "null"
"".concat(true); // "true"
"".concat(4, 5); // "45"
startsWith() 判断开头字符
查看字符串是否以指定的子字符串开头。
string.startsWith(searchvalue, start)
searchvalue 必需,要查找的字符串。
start 可选,查找的开始位置,默认为 0。
var str = "To be, or not to be, that is the question.";
console.log(str.startsWith("To be")); // true
console.log(str.startsWith("not to be")); // false
console.log(str.startsWith("not to be", 10)); // true
endsWith() 判断结尾字符
判断当前字符串是否是以指定的子字符串结尾的(区分大小写)。
string.endsWith(searchvalue, length)
searchvalue 必需,要搜索的子字符串。
length 设置字符串的长度。默认值为原始字符串长度 string.length。
const str1 = 'Cats are the best!';
console.log(str1.endsWith('best!'));
// Expected output: true
console.log(str1.endsWith('best', 17));
// Expected output: true
const str2 = 'Is this a question?';
console.log(str2.endsWith('question'));
// Expected output: false
indexOf() 元素首次出现的位置
返回某个指定的字符串值在字符串中首次出现的位置。如果没有找到匹配字符串则返回 -1 。
indexOf(searchvalue,start)
searchvalue 必需。规定需检索的字符串值。
start 可选的整数参数。规定在字符串中开始检索的位置。
它的合法取值是 0 到 string Object.length - 1。
如省略该参数,则将从字符串的首字符开始检索。
var str="Hello world, welcome to the universe.";
console.log(str.indexOf("e")) // 1
console.log(str.indexOf("e",5)) // 14
lastIndexOf() 元素最后出现的位置
从后向前搜索字符串,并从起始位置(0)开始计算返回字符串最后出现的位置。如果没有找到匹配字符串则返回 -1 。
注意:
该方法将从后向前检索字符串,但返回是从起始位置 (0) 开始计算子字符串最后出现的位置。 看它是否含有字符串。
string.lastIndexOf(searchvalue,start)
searchvalue 必需。规定需检索的字符串值。
start 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的最后一个字符处开始检索。
var str="I am from runoob,welcome to runoob site.";
var n=str.lastIndexOf("runoob");
console.log(n); // 28
includes() 是否包含某元素
查找字符串中是否包含指定的子字符串。
string.includes(searchvalue, start)
searchvalue 必需,要查找的字符串。
start 可选,设置从那个位置开始查找,默认为 0。
const str = "To be, or not to be, that is the question.";
console.log(str.includes("To be")); // true
console.log(str.includes("question")); // true
console.log(str.includes("nonexistent")); // false
console.log(str.includes("To be", 1)); // false
console.log(str.includes("TO BE")); // false
console.log(str.includes("")); // true
match() 正则表达式匹配
match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
注意:
match() 方法将检索字符串 String Object,以找到一个或多个与 regexp 匹配的文本。这个方法的行为在很大程度上有赖于 regexp 是否具有标志 g。如果 regexp 没有标志 g,那么 match() 方法就只能在 stringObject 中执行一次匹配。如果没有找到任何匹配的文本, match() 将返回 null。否则,它将返回一个数组,其中存放了与它找到的匹配文本有关的信息。
string.match(regexp)
regexp 必需。规定要匹配的模式的 RegExp 对象。
如果该参数不是 RegExp 对象,则需要首先把它传递给 RegExp 构造函数,将其转换为 RegExp 对象。
返回值
存放匹配结果的数组。该数组的内容依赖于 regexp 是否具有全局标志 g。 如果没找到匹配结果返回 null 。
const str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
const regexp = /[A-E]/gi;
const matches = str.match(regexp);
console.log(matches);
// ['A', 'B', 'C', 'D', 'E', 'a', 'b', 'c', 'd', 'e']
repeat() 复制元素并连接
复制字符串指定次数,并将它们连接在一起返回。
string.repeat(count)
count 必需,设置要复制的次数。
var str = "Runoob";
console.log(str.repeat(2)); // RunoobRunoob
replaceAll() 替换与正则表达式匹配的元素
在字符串中查找匹配的子串,并替换与正则表达式匹配的所有子串。
str.replaceAll(regexp|substr, newSubstr|function)
regexp|substr 必须。规定子字符串或要替换的模式的 RegExp 对象。
请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。当使用一个 regex 时,您必须设置全局("g")标志, 否则,它将引发 TypeError:"必须使用全局 RegExp 调用 replaceAll"。
newSubstr|function 必需。一个字符串值。规定了替换文本或生成替换文本的函数。
var str="Mr Blue has a blue house and a blue car";
var n=str.replaceAll(/blue/ig,"red");
console.log(n); //Mr red has a red house and a red car
search()查找与正则表达式相匹配的值
search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。如果没有找到任何匹配的子串,则返回 -1。返回与指定查找的字符串或者正则表达式相匹配的 String 对象起始位置。
string.search(searchvalue)
searchvalue 必须。查找的字符串或者正则表达式。
var str = "hey JudE";
var re = /[A-Z]/g;
var re2 = /[.]/g;
console.log(str.search(re)); // 4
console.log(str.search(re2)); // -1
slice() 提取字符
slice(start, end) 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
使用 start(包含) 和 end(不包含) 参数来指定字符串提取的部分。\
string.slice(start,end)
start 必须。 要抽取的片断的起始下标,第一个字符位置为 0。如果为负数,则从尾部开始截取。
end 可选。 紧接着要截取的片段结尾的下标。若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。slice(-2) 表示提取原数组中的倒数第二个元素到最后一个元素(包含最后一个元素)。
var str1 = "The morning is upon us.", // str1 的长度 length 是 23。
str2 = str1.slice(1, 8),
str3 = str1.slice(4, -2),
str4 = str1.slice(12),
str5 = str1.slice(30);
console.log(str2); // 输出:he morn
console.log(str3); // 输出:morning is upon u
console.log(str4); // 输出:is upon us.
console.log(str5); // 输出:""
split() 把字符串分割为字符串数组
split() 方法用于把一个字符串分割成字符串数组。
提示: 如果把空字符串 ("") 用作 separator,那么 stringObject 中的每个字符之间都会被分割。
注意: split() 方法不改变原始字符串。
string.split(separator,limit)
separator 可选。字符串或正则表达式,从该参数指定的地方分割 string Object。
limit 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。
var str="How are you doing today?";
var n=str.split(" ");
console.log(n); //['How', 'are', 'you', 'doing', 'today?']
substr() 根据索引指定长度提取字符
从起始索引号提取字符串中指定数目的字符
提示: substr() 的参数指定的是子串的开始位置和长度,因此它可以替代 substring() 和 slice() 来使用。
string.substr(start,length)
start 必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。
length 可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串。
var str="Hello world!";
var n=str.substr(2,3)
console.log(n); // llo
substring() 提取两个指定的索引号之间的字符
substring() 方法用于提取字符串中介于两个指定下标之间的字符。
substring() 方法返回的子串包括 开始 处的字符,但不包括 结束 处的字符
string.substring(from, to)
from 必需。一个非负的整数,规定要提取的子串的第一个字符在 string Object 中的位置。
to 可选。一个非负的整数,比要提取的子串的最后一个字符在 string Object 中的位置多 1。
如果省略该参数,那么返回的子串会一直到字符串的结尾。
var str="Hello world!";
var n=str.substring(2,3)
console.log(n); // l
toLowerCase() 字符串转换为小写
var str="Runoob";
console.log(str.toLowerCase()); // runoob
toUpperCase() 字符串转换为大写
var str="Runoob";
console.log(str.toUpperCase()); // RUNOOB
trim() 去除字符串两边的空白。
trim() 方法用于删除字符串的头尾空白符,空白符包括:空格、制表符 tab、换行符等其他空白符等。
trim() 方法不会改变原始字符串。
trim() 方法不适用于 null, undefined, Number 类型。
toString() 返回字符串
toString() 方法返回一个表示 String 对象的值。
valueOf() 原始值
返回某个字符串对象的原始值。
注意: valueOf() 方法通常由 JavaScript 在后台自动进行调用,而不是显式地处于代码中。
var x = new String("Hello world");
console.log(x.valueOf()); // Displays 'Hello world'