js中常见的对字符串操作的方法有很多,常用的其实就那几个。我们只需要牢记几个常用的就可以了,对于不常用的,我们可以去网上查或者收藏我的博客(手动🐶)。废话不多说,下面在进入正题前,声明一下:本人前端菜🐓,文采水平有限,还望指正。
简单介绍一下String 对象
String对象:用于处理文本(字符串) 创建方法:
let txt1 = new String();
let txt = 'string';
String 对象属性:
1. constructor :对创建该对象的函数的引用
2.length :创建的字符串的长度
3.prototype:原型对象
简单介绍一下它身上的方法
1.charAt() :返回在执行位置的字符
- 语法:
string.charAt(index) - 参数:
index :表示该字符在字符串中的索引位置 - 返回值:返回该索引位置的字符
let str = "Hello World";
console.log(str.charAt(2));
2. charCodeAt() :返回字符串中字符的Unicode编码
- 语法:
string.charCodeAt(index) - 参数:
index :表示该字符在字符串中的索引位置) , - 返回值:返回字符串中指定索引字符的Unicode编码,返回值是Number类型
let str = "Hello World";
console.log(str.charCodeAt(1));
3. concat() :连接两个或多个字符串
- 语法:
string.concat(string1,string2,...,stringN) - 参数:多个字符串
- 返回值:连接后的新字符串
let str1 = "Hello ";
let str2 = "World! ";
let str3 = "Hava a nice day!";
console.log(str1.concat(str2,str3));
4. endsWith() : 判断字符串是否以指定的子字符串结尾(区分大小写)
- 语法:
String.endWith(searchValue,length) - 参数:
searchValue :表示要搜索的子字符串 。length :设置字符串的长度。默认值为原始字符串的长度string.length - 返回值:如果字符串以指定的值结尾返回
true 。否则返回false
let str = "Hello world";
console.log(str.endsWith("world"));
console.log(str.endsWith("world",5))
5. fromCharCode() :将Unicode编码转为一个字符
- 语法:
string.fromCharCode(n1,n2,...,nX) - 参数:一个或多个Unicode值,即要创建的字符串中的字符的Unicode编码
- 返回值:返回代表Unicode编码的字符
let n = String.fromCharCode(72,69,76,76,79);
console.log(n)
6. indexOf() :返回某个指定的字符在字符串中首次出现的位置
- 语法:
string.indexOf(searchValue,start) - 参数:
searchValue :指定需要检索的字符。 start :可选。规定在字符串中开始检索的位置,它的合法取值是0到string.length-1。如省略该参数,则将从字符串的首字符开始检索 - 返回值:返回该字符第一次出现的位置索引,如果没找到,则返回-1
let str = "Hello world";
console.log(str.indexOf('o',5));
console.log(str.indexOf('a'));
7. includes() :判断字符串中是否包含指定的字符串
- 语法:
string.includes(searchValue,start) - 参数:
searchvalue :要查找的字符串。start :可选。设置从哪个位置开始查找,位置索引 - 返回值:如果找到匹配的字符串返回
true ,否则返回false
let str = "Hello world";
console.log(str.includes("world"));
console.log(str.includes("world",8));
8. lastIndexOf() :返回一个指定的字符串值最后出现的位置
- 语法:
string.lastIndexOf(searchvalue,start) - 参数:
searchvalue :规定需要检索的字符串的值。start :可选。规定在字符串中开始检索的位置。它的合法取值是0到string.length-1。如省略该参数,则将从字符串的最后一个字符处开始检索 - 返回值:查找的字符串最后出现的位置,如果没有找到匹配字符串则返回 -1
- 注意:该方法将从后向前检索字符串,但返回是从起始位置 (0) 开始计算子字符串最后出现的位置,看它是否含有字符串。
let str = "Hello world";
console.log(str.lastIndexOf('world'));
9. match() :在字符串内检索指定的值,或找到一个或多个正则表达式的匹配
- 语法:
string.match(regexp) - 参数:
regexp :规定要匹配的模式的 RegExp 对象。如果该参数不是 RegExp 对象,则需要首先把它传递给 RegExp 构造函数,将其转换为 RegExp 对象 - 返回值:返回一个匹配结果的数组。该数组的内容依赖于 regexp 是否具有全局标志 g。 如果没找到匹配结果返回 null
- 注意: match() 方法将检索字符串,以找到一个或多个与 regexp 匹配的文本。这个方法的行为在很大程度上有赖于 regexp 是否具有标志 g。如果 regexp 没有标志 g,那么 match() 方法就只能在 stringObject 中执行一次匹配。如果没有找到任何匹配的文本, match() 将返回 null。否则,它将返回一个数组,其中存放了与它找到的匹配文本有关的信息。
let str="The rain in SPAIN stays mainly in the plain";
console.log(str.match(/ain/gi));
10. repeat() :字符串复制指定次数
- 语法:
string.repeat(count) - 参数:需要复制的次数
- 返回值:返回复制指定次数并连接在一起的字符串
let str = "str";
console.log(str.repeat(2));
11. replace() : 在字符串中查找匹配的子串,并替换与正则表达式匹配的子串
- 语法:
string.replace(searchValue,newValue) - 参数:
searchValue :规定子字符串或要替换的模式的 RegExp 对象。请注意:如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。 newValue :一个字符串值。规定了替换文本或生成替换文本的函数 - 返回值:一个新的字符串
let str="Mr Blue has a blue house and a blue car";
console.log(str.replace(/blue/g,"red"));
console.log(str.replace(/blue/gi, "red"));
12. replaceAll() :在字符串中查找匹配的子串,并替换与正则表达式匹配的所有子串
- 语法:
const newStr = str.replaceAll(regexp|substr, newSubstr|function) - 参数:
regexp|substr :规定子字符串或要替换的模式的 RegExp 对象。请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。当使用一个 regex 时,您必须设置全局(“g”)标志, 否则,它将引发 TypeError:“必须使用全局 RegExp 调用 replaceAll” 。newSubstr|function :一个字符串值。规定了替换文本或生成替换文本的函数 - 返回值:一个新的字符串
let str="Hello world! Hello world! ";
console.log(str.replaceAll("world","World"));
13. search() :查找与正则表达式相匹配的值
- 语法:
string.search(searchValue) - 参数:
searchValue :查找的字符串或者正则表达式 - 返回值:与指定查找的字符串或者正则表达式相匹配的该字符串的起始位置索引。
let str="Mr. Blue has a blue house";
conosole.log(str.search("blue"));
14.slice() : 提取字符串的片断,并在新的字符串中返回被提取的部分
- 语法:
string.slice(start,end) - 参数:
start :要提取片断的起始下标,第一个字符位置为 0。如果为负数,则从尾部开始截取。 end :可选。 紧接着要截取的片段结尾的下标。若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置 - 返回值:提取的字符串
let str="Hello world!";
console.log(str.slice(3,8));
15. split() :把字符串分割为字符串数组
- 语法:
string.split(separator,limit) - 参数:
separator :字符串或正则表达式,从该参数指定的地方分割该字符串。注意:如果把空字符串 ("") 用作 separator参数,那么 该字符串中的每个字符之间都会被分割。 limit :该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。 - 返回值:一个字符串数组。该数组是通过在
separator 参数指定的边界处将字符串分割成的子串创建的。返回的数组中的字串不包括 separator 自身
let str="How are you doing today?";
console.log(str.split(""));
16. startsWith() :查看字符串是否以指定的子字符串开头
- 语法:
string.startsWith(searchValue, start) - 参数:
searchValue :要查找的字符串。start :可选。查找的开始位置,默认为 0 - 返回值:如果字符串是以指定的子字符串开头返回
true ,否则false
var str = "Hello world!";
console.log(str.startsWith("Hello"));
17. substr() :从起始索引号提取字符串中指定数目的字符
- 语法:
string.substr(start,length) - 参数:
start :要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。length :可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从该字符串的开始位置到结尾的字串。 - 返回值:提取后的新字符串
let str="Hello world!";
console.log(str.substr(2));
18. substring() :提取字符串中两个指定的索引号之间的字符
- 语法:
string.substring(from, to) - 参数:
from :一个非负的整数,规定要提取的子串的第一个字符在该字符串中的位置。to :可选。一个非负的整数,比要提取的子串的最后一个字符在该字符串中的位置多 1。如果省略该参数,那么返回的子串会一直到字符串的结尾。 - 返回值:提取后的新字符串
let str="Hello world!";
console.log(str.substring(3));
console.log(str.substring(3,7));
19. toLowerCase() :把字符串转换为小写
- 语法:
string.toLowerCase() - 返回值:转换后的字符串
let str="HELLO";
console.log(str.toLowerCase());
20. toUpperCase() :把字符串转换为大写
- 语法:
string.toUpperCase() - 返回值: 转换后的字符串
let str="hello";
console.log(str.toUpperCase());
21. trim() :去除字符串两边的空白
- 语法:string.trim()
- 返回值:返回移除头尾空格后的字符串
let str = " Hello ";
console.log(str.trim());
22. valueOf() :返回某个字符串对象的原始值
- 语法:
string.valueOf() - 返回值:返回 String 对象的原始值
- 注意:valueOf() 方法通常由 JavaScript 在后台自动进行调用,而不是显式地处于代码中
let str="Hello world!";
console.log(str.valueOf());
23. toString() : 返回一个字符串
- 语法:
string.toString() - 返回值:一个字符串
let a = 123;
console.log(a.toString());
24. toLocaleLowerCase() :根据本地主机的语言环境把字符串转换为小写
- 语法:
string.toLocaleLowerCase() - 返回值:根据本地语言转换为小写后的字符串
let str = "Hello";
console.log(str.toLocaleLowerCase());
25. toLocaleUpperCase() :根据本地主机的语言环境把字符串转换为大写
- 语法:
string.toLocaleUpperCase() - 返回值:根据本地语言转换为大写后的字符串
let str = "hello";
console.log(str.toLocaleUpperCase());
乾坤未定,你我皆是黑马!
|