参考答案:
我们也可将字符串常用的操作方法归纳为增、删、改、查,需要知道字符串的特点是一旦创建了,就不可变
这里增的意思并不是说直接增添内容,而是创建字符串的一个副本,再进行操作
除了常用+
以及${}
进行字符串拼接之外,还可通过concat
用于将一个或多个字符串拼接成一个新字符串
1let stringValue = "hello "; 2let result = stringValue.concat("world"); 3console.log(result); // "hello world" 4console.log(stringValue); // "hello"
这里的删的意思并不是说删除原字符串的内容,而是创建字符串的一个副本,再进行操作
常见的有:
这三个方法都返回调用它们的字符串的一个子字符串,而且都接收一或两个参数。
1let stringValue = "hello world"; 2console.log(stringValue.slice(3)); // "lo world" 3console.log(stringValue.substring(3)); // "lo world" 4console.log(stringValue.substr(3)); // "lo world" 5console.log(stringValue.slice(3, 7)); // "lo w" 6console.log(stringValue.substring(3,7)); // "lo w" 7console.log(stringValue.substr(3, 7)); // "lo worl"
这里改的意思也不是改变原字符串,而是创建字符串的一个副本,再进行操作
常见的有:
trim()、trimLeft()、trimRight()
repeat()
padStart()、padEnd()
toLowerCase()、 toUpperCase()
删除前、后或前后所有空格符,再返回新的字符串
1let stringValue = " hello world "; 2let trimmedStringValue = stringValue.trim(); 3console.log(stringValue); // " hello world " 4console.log(trimmedStringValue); // "hello world"
接收一个整数参数,表示要将字符串复制多少次,然后返回拼接所有副本后的结果
1let stringValue = "na "; 2let copyResult = stringValue.repeat(2) // na na
复制字符串,如果小于指定长度,则在相应一边填充字符,直至满足长度条件
1let stringValue = "foo"; 2console.log(stringValue.padStart(6)); // " foo" 3console.log(stringValue.padStart(9, ".")); // "......foo"
大小写转化
1let stringValue = "hello world"; 2console.log(stringValue.toUpperCase()); // "HELLO WORLD" 3console.log(stringValue.toLowerCase()); // "hello world"
除了通过索引的方式获取字符串的值,还可通过:
chatAt()
indexOf()
startWith()
includes()
返回给定索引位置的字符,由传给方法的整数参数指定
1let message = "abcde"; 2console.log(message.charAt(2)); // "c"
从字符串开头去搜索传入的字符串,并返回位置(如果没找到,则返回 -1 )
1let stringValue = "hello world"; 2console.log(stringValue.indexOf("o")); // 4
从字符串中搜索传入的字符串,并返回一个表示是否包含的布尔值
1let message = "foobarbaz"; 2console.log(message.startsWith("foo")); // true 3console.log(message.startsWith("bar")); // false 4console.log(message.includes("bar")); // true 5console.log(message.includes("qux")); // false
把字符串按照指定的分割符,拆分成数组中的每一项
1let str = "12+23+34" 2let arr = str.split("+") // [12,23,34]
针对正则表达式,字符串设计了几个方法:
接收一个参数,可以是一个正则表达式字符串,也可以是一个RegExp
对象,返回数组
1let text = "cat, bat, sat, fat"; 2let pattern = /.at/; 3let matches = text.match(pattern); 4console.log(matches[0]); // "cat"
接收一个参数,可以是一个正则表达式字符串,也可以是一个RegExp
对象,找到则返回匹配索引,否则返回 -1
1let text = "cat, bat, sat, fat"; 2let pos = text.search(/at/); 3console.log(pos); // 1
接收两个参数,第一个参数为匹配的内容,第二个参数为替换的元素(可用函数)
1let text = "cat, bat, sat, fat"; 2let result = text.replace("at", "ond"); 3console.log(result); // "cond, bat, sat, fat"
最近更新时间:2024-07-20