字符串的一些属性和方法

字符串的属性和方法

属性

string.length属性表示一个字符串的长度,空字符串的长度为0

方法

string.charAt()

​ charAt() 方法从一个字符串中返回指定的字符。

str.charAt(index)

index
一个介于0 和字符串长度减1之间的整数。 (0~length-1)如果没有提供索引,charAt() 将使用0。

string.charCodeAt()

​ charCodeAt() 方法返回 0 到 65535 之间的整数,表示给定索引处的 UTF-16 代码单元

str.charCodeAt(index)

index
一个大于等于 0,小于字符串长度的整数。如果不是一个数值,则默认为 0。

​ 返回值

指定 index 处字符的 UTF-16 代码单元值的一个数字;如果 index 超出范围,charCodeAt() 返回 NaN)。

string.codePointAt()

​ codePointAt() 方法返回 一个 Unicode 编码点值的非负整数。

str.codePointAt(pos)

pos
这个字符串中需要转码的元素的位置。

返回值

​ 返回值是在字符串中的给定索引的编码单元体现的数字,如果在索引处没找到元素则返回 undefined。

string.concat()

​ concat() 方法将一个或多个字符串与原字符串连接合并,形成一个新的字符串并返回。不影响原来的字符串,如果参数不是字符串类型,它们在连接之前将会被转换成字符串。

str.concat(str2, [, ...strN])

str2 [, ...strN]
需要连接到 str 的字符串。

​ 在使用性能方面,官网推荐使用赋值操作符(+, +=)代替这个方法

string.endsWith()

​ endsWith()方法用来判断当前字符串是否是以另外一个给定的子字符串“结尾”的,根据判断结果返回 true或 false(返回布尔值),大小写敏感。

同样的startsWith()则是用来判断是否是以给定的字符串开头。

str.endsWith(searchString[, length])

searchString
要搜索的子字符串。
length 可选
作为 str 的长度。默认值为 str.length。
const str1 = 'Cats are the best!';

console.log(str1.endsWith('best', 17));
// expected output: true

const str2 = 'Is this a question';

console.log(str2.endsWith('?'));
// expected output: false

string.fromCharCode()

​ 静态 String.fromCharCode() 方法返回由指定的 UTF-16 代码单元序列创建的字符串。返回值是一个长度为n的字符串,由n个指定的UTF-16代码单元组成(返回值是一个字符串)

String.fromCharCode(num1[, ...[, numN]])

num1, ..., numN
一系列 UTF-16 代码单元的数字。范围介于 0 到 65535(0xFFFF)之间。大于 0xFFFF 的数字将被截断。不进行有效性检查。
console.log(String.fromCharCode(189, 43, 190, 61));
// expected output: "½+¾="
/*在这个例子中,43是+号,61是=号,剩下的自己猜想

string.fromCodePoint()

​ String.fromCodePoint() 静态方法返回使用指定的代码点序列创建的字符串。返回值是使用指定的 Unicode 编码位置创建的字符串,如果传入无效的 Unicode 编码,将会抛出一个RangeError(例如: “RangeError: NaN is not a valid code point”)。

String.fromCodePoint(num1[, ...[, numN]])
num1, ..., numN
一串 Unicode 编码位置,即“代码点”。
console.log(String.fromCodePoint(9731, 9733, 9842, 0x2F804));
// expected output: "☃★♲你",一个数字对应一个特殊的图案或者文字

string.includes()

​ includes()方法用于判断一个字符串是否包含在另一个字符串中,根据情况返回 true 或 false。但是要注意,这个方法是要区分大小写的。

str.includes(searchString[, position])

searchString
要在此字符串中搜索的字符串。
position 可选
从当前字符串的哪个索引位置开始搜寻子字符串,默认值为 0。
var 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

string.indexOf()

​ indexOf() 方法返回调用它的 String对象中第一次出现的指定值的索引,从 fromIndex 处进行搜索。如果未找到该值,则返回 -1,与之相对应的是lastIndexOf()。但是lastIndexOf是返回最后一次出现的索引,在指定的fromIndex位置出从后往前找

str.indexOf(searchValue [, fromIndex])

searchValue
要被查找的字符串值。如果没有提供确切地提供字符串,searchValue 会被强制设置为 "undefined", 然后在当前字符串中查找这个值。举个例子:'undefined'.indexOf() 将会返回0,因为 undefined 在位置0处被找到,但是 'undefine'.indexOf() 将会返回 -1 ,因为字符串 'undefined' 未被找到。
fromIndex 可选
数字表示开始查找的位置。可以是任意整数,默认值为 0。如果 fromIndex 的值小于 0,或者大于 str.length ,那么查找分别从 0 和str.length 开始。(译者注:  fromIndex 的值小于 0,等同于为空情况; fromIndex 的值大于或等于 str.length ,那么结果会直接返回 -1 。)举个例子,'hello world'.indexOf('o', -5) 返回 4 ,因为它是从位置0处开始查找,然后 o 在位置4处被找到。另一方面,'hello world'.indexOf('o', 11) (或 fromIndex 填入任何大于11的值)将会返回 -1 ,因为开始查找的位置11处,已经是这个字符串的结尾了。

string.padEnd()

​ padEnd() 方法会用一个字符串填充当前字符串(如果需要的话则重复填充),返回填充后达到指定长度的字符串。从当前字符串的末尾(右侧)开始填充,跟padStart相对应

str.padEnd(targetLength [, padString])

targetLength
当前字符串需要填充到的目标长度。如果这个数值小于当前字符串的长度,则返回当前字符串本身。
padString 可选
填充字符串。如果字符串太长,使填充后的字符串长度超过了目标长度,则只保留最左侧的部分,其他部分会被截断。此参数的缺省值为 " "(U+0020)。
'abc'.padEnd(10, "foo");   // "abcfoofoof"

const str1 = 'Breaded Mushrooms';

console.log(str1.padEnd(30,'foo'));//这里的30也就是从已有的字符串之后开始填充,填充到整体的字符串长度为30才结束
VM559:3 Breaded Mushroomsfoofoofoofoof
'abc'.padStart(10, "foo");  // "foofoofabc"

string.repeat()

​ repeat() 构造并返回一个新字符串,该字符串包含被连接在一起的指定数量的字符串的副本。

​ 返回值:包含指定字符串的指定数量副本的新字符串。

str.repeat(count)

count
介于 0 和 +Infinity 之间的整数。表示在新构造的字符串中重复了多少遍原字符串。
"abc".repeat(-1)     // RangeError: repeat count must be positive and less than inifinity
"abc".repeat(0)      // ""
"abc".repeat(1)      // "abc"
"abc".repeat(2)      // "abcabc"
"abc".repeat(3.5)    // "abcabcabc" 参数count将会被自动转换成整数.
"abc".repeat(1/0)    // RangeError: repeat count must be positive and less than inifinity

({toString : () => "abc", repeat : String.prototype.repeat}).repeat(2)
//"abcabc",repeat是一个通用方法,也就是它的调用者可以不是一个字符串对象.

重复次数不能为负数

string.replace()

​ replace() 方法返回一个由替换值(replacement)替换部分或所有的模式(pattern)匹配项后的新字符串。模式可以是一个字符串或者一个正则表达式,替换值可以是一个字符串或者一个每次匹配都要调用的回调函数。如果pattern是字符串,则仅替换第一个匹配项。原来的字符串不会改变。

​ replaceAll()方法则是替换全部。

str.replace(regexp|substr, newSubStr|function)

regexp (pattern)
一个RegExp 对象或者其字面量。该正则所匹配的内容会被第二个参数的返回值替换掉。
substr (pattern)
一个将被 newSubStr 替换的 字符串。其被视为一整个字符串,而不是一个正则表达式。仅第一个匹配项会被替换。
newSubStr (replacement)
用于替换掉第一个参数在原字符串中的匹配部分的字符串。该字符串中可以内插一些特殊的变量名。参考下面的使用字符串作为参数。
function (replacement)
一个用来创建新子字符串的函数,该函数的返回值将替换掉第一个参数匹配到的结果。参考下面的指定一个函数作为参数。
const p = 'The quick brown fox jumps over the lazy dog. If the dog reacted, was it really lazy?';

console.log(p.replace('dog', 'monkey'));
// expected output: "The quick brown fox jumps over the lazy monkey. If the dog reacted, was it really lazy?"

string.slice()

​ slice() 方法提取某个字符串的一部分,并返回一个新的字符串,且不会改动原字符串。

const str = 'The quick brown fox jumps over the lazy dog.';

console.log(str.slice(31));
// expected output: "the lazy dog."

console.log(str.slice(4, 19));
// expected output: "quick brown fox"

console.log(str.slice(-4));
// expected output: "dog."

console.log(str.slice(-9, -5));
// expected output: "lazy"

str.slice(beginIndex[, endIndex])

beginIndex
从该索引(以 0 为基数)处开始提取原字符串中的字符。如果值为负数,会被当做 strLength + beginIndex 看待,这里的strLength 是字符串的长度(例如, 如果 beginIndex 是 -3 则看作是:strLength - 3)
endIndex
可选。在该索引(以 0 为基数)处结束提取字符串。如果省略该参数,slice() 会一直提取到字符串末尾。如果该参数为负数,则被看作是 strLength + endIndex,这里的 strLength 就是字符串的长度(例如,如果 endIndex 是 -3,则是, strLength - 3)。

string.split()

​ split()方法使用指定的分隔符字符串将一个String对象分割成子字符串数组,以一个指定的分割字串来决定每个拆分的位置。

返回值是分割而成的数组

str.split([separator[, limit]])

separator
指定表示每个拆分应发生的点的字符串。separator 可以是一个字符串或正则表达式。 如果纯文本分隔符包含多个字符,则必须找到整个字符串来表示分割点。如果在str中省略或不出现分隔符,则返回的数组包含一个由整个字符串组成的元素。如果分隔符为空字符串,则将str原字符串中每个字符的数组形式返回。
limit
一个整数,限定返回的分割片段数量。当提供此参数时,split 方法会在指定分隔符的每次出现时分割该字符串,但在限制条目已放入数组时停止。如果在达到指定限制之前达到字符串的末尾,它可能仍然包含少于限制的条目。新数组中不返回剩下的文本。
str.startsWith(searchString[, position])

searchString
要搜索的子字符串。
position 可选
在 str 中搜索 searchString 的开始位置,默认值为 0。

string.subString()

​ substring() 方法返回一个字符串在开始索引到结束索引之间的一个子集, 或从开始索引直到字符串的末尾的一个子集,简单的说就是截取一个区间,[start,end)。不改变原有字符串

str.substring(indexStart[, indexEnd])

indexStart
需要截取的第一个字符的索引,该索引位置的字符作为返回的字符串的首字母。
indexEnd
可选。一个 0 到字符串长度之间的整数,以该数字为索引的字符不包含在截取的字符串内。

大小写转化

​ toLocaleLowerCase()方法根据任何指定区域语言环境设置的大小写映射,返回调用字符串被转换为小写的格式。

​ toLocaleUpperCase() 方法根据本地主机语言环境把字符串转换为大写格式,并返回转换后的字符串。

​ toUpperCase() 方法将调用该方法的字符串转为大写形式并返回(如果调用该方法的值不是字符串类型会被强制转换)。

删除空格

trim()方法会从一个字符串的两端删除空白字符。在这个上下文中的空白字符是所有的空白字符 (space, tab, no-break space 等) 以及所有行终止符字符(如 LF,CR等)。

trimEnd()方法从一个字符串的末端移除空白字符。trimRight() 是这个方法的别名。

trimStart()方法从字符串的开头删除空格。trimLeft() 是此方法的别名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值