JavaScript 操作字符串的方法

js 操作字符串的方法总结:

方法名 功能描述 功能分类
charAt() 返回字符串中指定位置的字符 获取字符串指定位置的值
charCodeAt() 返回指定索引位置字符的 Unicode 值 获取字符串指定位置的值
concat() 连接两个或多个字符串 连接两个或多个字符串
indexOf() 返回某个指定的字符串值在字符串中首次出现的位置 检索字符串是否包含特定序列
lastIndexOf() 查找某个字符最后一次匹配到的位置 检索字符串是否包含特定序列
includes() 判断字符串是否包含指定的子字符串 检索字符串是否包含特定序列
startsWith() 检测字符串是否以指定的子字符串开始 检索字符串是否包含特定序列
endsWith() 判断当前字符串是否是以指定的子字符串结尾 检索字符串是否包含特定序列
includes() 判断字符串是否包含指定的子字符串 检索字符串是否包含特定序列
slice() 截取字符串的某个部分,并以新的字符串返回被提取的部分 截取字符串
substr() 截取从开始下标开始的指定数目的字符 截取字符串
substring() 截取字符串中介于两个指定下标之间的字符 截取字符串
replace() 用一些字符替换另一些字符 字符串模式匹配
replaceAll() 用一些字符替换所有匹配到的子字符串 字符串模式匹配
match() 在字符串内检索指定的值 字符串模式匹配
search() 检索字符串中指定的子字符串 字符串模式匹配
trim() 删除字符串的头尾空白符 去除字符串空白符
trimStart() 删除字符串的开头空白符 去除字符串空白符
trimEnd() 删除字符串的结尾空白符 去除字符串空白符
parseInt() 字符串转为数字 字符串转为数字
parseFloat() 字符串转数字,返回浮点数 字符串转为数字
toLowerCase() 把字符串转换为小写 字符串大小写转换
toUpperCase() 把字符串转换为大写 字符串大小写转换
padStart() 用于头部补全字符串长度 补齐字符串长度
padEnd() 用于尾部补全字符串长度 补齐字符串长度
split() 把一个字符串分割成字符串数组。该方法不会改变原始字符串 字符串分割成数组
repeat() 将原字符串重复n次 将原字符串重复n次

操作字符串的方法

1、charAt()

charAt() 方法可返回字符串中指定位置的字符。

const str = 'hello';
str.charAt(1)  // 输出结果:e 

2、charCodeAt()

charCodeAt()方法会返回指定索引位置字符的 Unicode 值,返回值是 0 - 65535 之间的整数

let str = "abcdefg";
console.log(str.charCodeAt(1)); // "b" --> 98

3、concat()

concat() 方法用于连接两个或多个字符串。
该方法没有改变原有字符串,但是会返回连接两个或多个字符串新字符串

let str = "abc";
console.log(str.concat("efg"));          //输出结果:"abcefg"
console.log(str.concat("efg","hijk")); //输出结果:"abcefghijk"

4、indexOf()

indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
如果没有找到匹配的字符串则返回 -1。

string.indexOf(searchvalue,fromindex)
searchvalue:必需,规定需检索的字符串值;
fromindex:可选的整数参数,规定在字符串中开始检索的位置。它的合法取值是 0 到 string.length - 1。如省略该,则从字符串的首字符开始检索。

let str = "Hello";
let s = str.indexOf("e");
console.log(s); //1

5、lastIndexOf()

lastIndexOf()方法查找某个字符,有则返回最后一次匹配到的位置,否则返回-1

let str = "abcabc";
console.log(str.lastIndexOf("a"));  // 输出结果:3
console.log(str.lastIndexOf("z"));  // 输出结果:-1

6、includes()

includes() 方法用于判断字符串是否包含指定的子字符串。

string.includes(searchvalue, start)
searchvalue:必需,要查找的字符串;
start:可选,设置从那个位置开始查找,默认为 0

let str = "Hello";
let s = str.includes("e");
console.log(s); //true
str.includes('e', 2)  // 输出结果:false

7、startsWith()

startsWith()方法用于检测字符串是否以指定的子字符串开始。如果是以指定的子字符串开头返回 true,否则 false。其语法和上面的includes()方法一样。

let str = 'Hello world!';
str.startsWith('Hello') // 输出结果:true
str.startsWith('Helle') // 输出结果:false
str.startsWith('wo', 6) // 输出结果:true

8、endsWith()

endsWith()方法用来判断当前字符串是否是以指定的子字符串结尾。如果传入的子字符串在搜索字符串的末尾则返回 true,否则将返回 false。

string.endsWith(searchvalue, length)
searchvalue:必需,要搜索的子字符串;
length: 设置字符串的长度,默认值为原始字符串长度 string.length。

let str = 'Hello world!';
str.endsWith('!')       // 输出结果:true
str.endsWith('llo')     // 输出结果:false
str.endsWith('llo', 5)  // 输出结果:true

9、slice()

slice(start, end) 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。

string.slice(start,end)
start 必须。 要抽取的片断的起始下标,第一个字符位置为 0。如果为负数,则从尾部开始截取。
end 可选。 紧接着要截取的片段结尾的下标。若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。slice(-2) 表示提取原数组中的倒数第二个元素到最后一个元素(包含最后一个元素)。

let str = "Hello";
let s = str.slice(1, 2);
console.log(s); //e

10、substr()

substr() 方法用于在字符串中抽取从开始下标开始的指定数目的字符。

string.substr(start,length)
start 必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。
length:可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串。

let str = "abcdefg";
str.substr(1,6); // 输出结果:"bcdefg" 
str.substr(1);   // 输出结果:"bcdefg" 相当于截取[1,str.length-1]
str.substr();    // 输出结果:"abcdefg" 相当于截取[0,str.length-1]
str.substr(-1);  // 输出结果:"g"

11、substring()

substring() 方法用于提取字符串中介于两个指定下标之间的字符。

string.substring(from, to)
from:必需。一个非负的整数,规定要提取的子串的第一个字符在 string 中的位置。
to:可选。一个非负的整数,比要提取的子串的最后一个字符在 string 中的位置多 1。如果省略该参数,那么返回的子串会一直到字符串的结尾。

let str = "abcdefg";
str.substring(1,6); // 输出结果:"bcdef" [1,6)
str.substring(1);   // 输出结果:"bcdefg" [1,str.length-1]
str.substring();    // 输出结果:"abcdefg" [0,str.length-1]
str.substring(6,1); // 输出结果 "bcdef" [1,6)
str.substring(-1);  // 输出结果:"abcdefg"

12、replace()

replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

string.replace(searchvalue,newvalue)
searchvalue 必须。规定子字符串或要替换的模式的 RegExp 对象。
请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。
newvalue 必需。一个字符串值。规定了替换文本或生成替换文本的函数。

let str = "Hello";
let s = str.replace("l", "o");
console.log(s); //Heolo

13、replaceAll()

replaceAll() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串,该函数会替换所有匹配到的子字符串。

let str = "Hello";
let s = str.replaceAll("l", "o");
console.log(s); //Heooo

14、match()

match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。

string.match(regexp)
regexp 必需。规定要匹配的模式的 RegExp 对象。如果该参数不是 RegExp 对象,则需要首先把它传递给 RegExp 构造函数,将其转换为 RegExp 对象。

let str = "Hello";
let s = str.match(/l/g);
console.log(s); //[ 'l', 'l' ]

let str = "abcdef";
console.log(str.match("c")) // ["c", index: 2, input: "abcdef", groups: undefined]

15、search()

search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。返回与指定查找的字符串或者正则表达式相匹配的 String 对象起始位置。

string.search(searchvalue)
searchvalue 必须。查找的字符串或者正则表达式。

let str = "Hello";
let s = str.search("lo");
console.log(s); //3

let str = "abcdef";
str.search(/bcd/)   // 输出结果:1

16、trim()

trim() 方法用于删除字符串的头尾空白符,空白符包括:空格、制表符 tab、换行符等其他空白符等。

let str = "    Hello   ";
let s = str.trim();
console.log(str); //    Hello
console.log(s); //Hello

16、trimStart()

trim() 方法用于删除字符串的开头空白符,空白符包括:空格、制表符 tab、换行符等其他空白符等。

const s = '  abc  ';
s.trimStart()   // "abc  "

16、trimEnd()

trim() 方法用于删除字符串的结尾空白符,空白符包括:空格、制表符 tab、换行符等其他空白符等。

const s = '  abc  ';
s.trimEnd()   // "  abc"

17、parseInt()

parseInt()方法用于将字符串转为数字。

parseInt(string, radix)
string:必需。要被解析的字符串。
radix:可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。

当参数 radix 的值为 0,或没有设置该参数时,parseInt() 会根据 string 来判断数字的基数。

parseInt("10");			  // 输出结果:10
parseInt("17",8);		  // 输出结果:15 (8+7)
parseInt("010");		  // 输出结果:10

当参数 radix 的值以 “0x” 或 “0X” 开头,将以 16 为基数:

parseInt("0x10")      // 输出结果:16

如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN:

parseInt("50", 1)      // 输出结果:NaN
parseInt("50", 40)     // 输出结果:NaN

只有字符串中的第一个数字会被返回,当遇到第一个不是数字的字符为止:

parseInt("40 4years")   // 输出结果:40

如果字符串的第一个字符不能被转换为数字,就会返回 NaN:

parseInt("new100")     // 输出结果:NaN

字符串开头和结尾的空格是允许的:

parseInt("  60  ")    // 输出结果: 60

18、parseFloat()

parseFloat() 方法可解析一个字符串,并返回一个浮点数。

parseFloat("10.00")      // 输出结果:10.00
parseFloat("10.01")      // 输出结果:10.01
parseFloat("-10.01")     // 输出结果:-10.01
parseFloat("40.5 years") // 输出结果:40.5

如果参数字符串的第一个字符不能被解析成为数字,则 parseFloat 返回 NaN。

parseFloat("new40.5")    // 输出结果:NaN

19、toLowerCase()

toLowerCase()该方法用于把字符串转换为小写。

let str = "adABDndj";
str.toLowerCase(); // 输出结果:"adabdndj"

20、toUpperCase()

toUpperCase()该方法用于把字符串转换为大写。

let str = "adABDndj";
str.toUpperCase(); // 输出结果:"ADABDNDJ"

21、padStart()

padStart()该方法用于头部补全。该方法有两个参数,其中第一个参数是一个数字,表示字符串补齐之后的长度;第二个参数是用来补全的字符串。

'x'.padStart(1, 'ab') // 'x'
'x'.padStart(5, 'ab') // 'ababx'
'x'.padStart(4, 'ab') // 'abax'

'x'.padStart(4) // '   x'

"1".padStart(3, '0')   // 输出结果: '001'
"15".padStart(3, '0')  // 输出结果: '015'

22、padEnd()

padEnd()该方法用于尾部补全。该方法也是接收两个参数,第一个参数是字符串补全生效的最大长度,第二个参数是用来补全的字符串。

'x'.padEnd(5, 'ab') // 'xabab'
'x'.padEnd(4, 'ab') // 'xaba'

23、split()

split() 方法用于把一个字符串分割成字符串数组。该方法不会改变原始字符串。

string.split(separator,limit)
separator:必需。字符串或正则表达式,从该参数指定的地方分割 string。
limit:可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。

let str = "abcdef";
str.split("c");    // 输出结果:["ab", "def"]
str.split("", 4)   // 输出结果:['a', 'b', 'c', 'd'] 

如果把空字符串用作 separator,那么字符串中的每个字符之间都会被分割。

str.split("");     // 输出结果:["a", "b", "c", "d", "e", "f"]

将字符串分割成数组时,可以同时拆分多个分割符,使用正则表达式即可实现:

const list = "apples,bananas;cherries"
const fruits = list.split(/[,;]/)
console.log(fruits);  // 输出结果:["apples", "bananas", "cherries"]

24、repeat()

repeat() 方法返回一个新字符串,表示将原字符串重复n次

'x'.repeat(3)     // 输出结果:"xxx"
'hello'.repeat(2) // 输出结果:"hellohello"
'na'.repeat(0)    // 输出结果:""

如果参数是小数,会向下取整

'na'.repeat(2.9) // 输出结果:"nana"

猜你喜欢

转载自blog.csdn.net/m0_47791238/article/details/131263540
今日推荐