String 对象属性和方法

String 对象

 

在 JvaScript 中,String 是一种基本的数据类型 ,用于进行字符串操作。字符串字面量 (通过单引号或双引号定义) 和 直接调用 String 方法(没有通过 new 生成字符串对象实例)的字符串都是基本字符串。JavaScript 会自动将基本字符串转换为字符串对象,只有将基本字符串转化为字符串对象之后才可以使用字符串对象的方法。当基本字符串需要调用一个字符串对象才有的方法或者查询值的时候(基本字符串是没有这些方法的),JavaScript 会自动将基本字符串转化为字符串对象并且调用相应的方法或者执行查询。
它的原型中提供了查找、替换、转换等相关操作。
创建一个 String 对象有多种方法:
  • var str = String(xxx)
  • var str = new String(xxx)
  • var str = "xxx"
  • var str = `xxx`
  • var str = xxx.toString()
  • var str = xxx+""

 

String 对象与其实例对象的属性和方法:

// Object.getOwnPropertyDescriptors(String):
name                        : {value: "String", writable: false, enumerable: false, configurable: true}
length                      : {value: 1, writable: false, enumerable: false, configurable: true}
prototype                   : {value: String, writable: false, enumerable: false, configurable: false}
fromCharCode                : {writable: true, enumerable: false, configurable: true, value: ƒ}
fromCodePoint               : {writable: true, enumerable: false, configurable: true, value: ƒ}
raw                         : {writable: true, enumerable: false, configurable: true, value: ƒ}

// Object.getOwnPropertyDescriptors(String.prototype):
length                      : {value: 0, writable: false, enumerable: false, configurable: false}
valueOf                     : {writable: true, enumerable: false, configurable: true, value: ƒ}
Symbol(Symbol.iterator)     : {writable: true, enumerable: false, configurable: true, value: ƒ}
anchor                      : {writable: true, enumerable: false, configurable: true, value: ƒ}
big                         : {writable: true, enumerable: false, configurable: true, value: ƒ}
blink                       : {writable: true, enumerable: false, configurable: true, value: ƒ}
bold                        : {writable: true, enumerable: false, configurable: true, value: ƒ}
charAt                      : {writable: true, enumerable: false, configurable: true, value: ƒ}
charCodeAt                  : {writable: true, enumerable: false, configurable: true, value: ƒ}
codePointAt                 : {writable: true, enumerable: false, configurable: true, value: ƒ}
concat                      : {writable: true, enumerable: false, configurable: true, value: ƒ}
constructor                 : {writable: true, enumerable: false, configurable: true, value: ƒ}
endsWith                    : {writable: true, enumerable: false, configurable: true, value: ƒ}
f                           : {writable: true, enumerable: true, configurable: true, value: ƒ}
fixed                       : {writable: true, enumerable: false, configurable: true, value: ƒ}
fontcolor                   : {writable: true, enumerable: false, configurable: true, value: ƒ}
fontsize                    : {writable: true, enumerable: false, configurable: true, value: ƒ}
format                      : {writable: true, enumerable: true, configurable: true, value: ƒ}
includes                    : {writable: true, enumerable: false, configurable: true, value: ƒ}
indexOf                     : {writable: true, enumerable: false, configurable: true, value: ƒ}
italics                     : {writable: true, enumerable: false, configurable: true, value: ƒ}
lastIndexOf                 : {writable: true, enumerable: false, configurable: true, value: ƒ}
link                        : {writable: true, enumerable: false, configurable: true, value: ƒ}
localeCompare               : {writable: true, enumerable: false, configurable: true, value: ƒ}
match                       : {writable: true, enumerable: false, configurable: true, value: ƒ}
matchAll                    : {writable: true, enumerable: false, configurable: true, value: ƒ}
normalize                   : {writable: true, enumerable: false, configurable: true, value: ƒ}
padEnd                      : {writable: true, enumerable: false, configurable: true, value: ƒ}
padStart                    : {writable: true, enumerable: false, configurable: true, value: ƒ}
repeat                      : {writable: true, enumerable: false, configurable: true, value: ƒ}
replace                     : {writable: true, enumerable: false, configurable: true, value: ƒ}
search                      : {writable: true, enumerable: false, configurable: true, value: ƒ}
slice                       : {writable: true, enumerable: false, configurable: true, value: ƒ}
small                       : {writable: true, enumerable: false, configurable: true, value: ƒ}
split                       : {writable: true, enumerable: false, configurable: true, value: ƒ}
startsWith                  : {writable: true, enumerable: false, configurable: true, value: ƒ}
strike                      : {writable: true, enumerable: false, configurable: true, value: ƒ}
sub                         : {writable: true, enumerable: false, configurable: true, value: ƒ}
substr                      : {writable: true, enumerable: false, configurable: true, value: ƒ}
substring                   : {writable: true, enumerable: false, configurable: true, value: ƒ}
sup                         : {writable: true, enumerable: false, configurable: true, value: ƒ}
toLocaleLowerCase           : {writable: true, enumerable: false, configurable: true, value: ƒ}
toLocaleUpperCase           : {writable: true, enumerable: false, configurable: true, value: ƒ}
toLowerCase                 : {writable: true, enumerable: false, configurable: true, value: ƒ}
toString                    : {writable: true, enumerable: false, configurable: true, value: ƒ}
toUpperCase                 : {writable: true, enumerable: false, configurable: true, value: ƒ}
trim                        : {writable: true, enumerable: false, configurable: true, value: ƒ}
trimEnd                     : {writable: true, enumerable: false, configurable: true, value: ƒ}
trimLeft                    : {writable: true, enumerable: false, configurable: true, value: ƒ}
trimRight                   : {writable: true, enumerable: false, configurable: true, value: ƒ}
trimStart                   : {writable: true, enumerable: false, configurable: true, value: ƒ}

 

String.prototype 常用方法与描述

 

方法描述
charAt() 返回索引对应的字符。
charCodeAt() 返回索引对应的字符的Unicode值
concat() 连接多个字符串,并返回连接后的字符串。
trim() 去除字符串首尾空格。
indexOf() 返回匹配子字符串第一次出现的位置,如果不存在就返回-1。
lastIndexOf() 返回匹配子字符串最后一次出现的位置,如果不存在就返回-1。
localeCompare() 比较两个字符串,相同返回0,不同返回-1。
includes() 判断字符串中有无特定字符串,有返回true,无返回false。
match() 用于匹配正则表达式,返回一个对象,不匹配返回null。
replace() 用指定字符串替换正则匹配的字符串,返回替换后的字符串。
search() 返回正则匹配的字符串的索引。
slice() 返回指定位置的字符串。
split() 返回一个被正则匹配分割开的字符串组成的数组,可指定数组长度
substr() 返回在指定位置开始的字符串中的字符。
substring() 返回在字符串中指定两个下标之间的字符。
toLowerCase() 大写字符转小写。
toLocaleLowerCase() 根据语言环境,大写字符转小写
toUpperCase() 小写字符转大写。
toLocaleUpperCase() 根据语言环境,小写字符转大写
toString() 返回表示该对象的一个字符串。
valueOf() 返回指定对象的原始数值。

 

String.prototype 常用方法

1、charAt()

功能:返回指定位置的字符。

语法:str.charAt(index)

参数:index,目标字符的下标位置(如果是数字字符串会转为数字,建议直接用数字)。

index 超出 0 ~ str.length-1 范围,将返回一个空字符串

示例:

var str = '小强今晚再打老虎'
str.charAt()// '小'
str.charAt(3)// '晚'
str.charAt('3')// '晚'
str.charAt('')// '小'
str.charAt(999)// ''
str.charAt(str.length)// ''
str.charAt(str.length-1)// '虎'

 

2、charCodeAt()

功能:返回在指定的位置的字符的 Unicode 编码。

语法:str.charCodeAt(index)

参数:index,目标字符的下标位置。

index 超出 0 ~ str.length-1 范围,将返回NaN。

示例:

var str = '小强今晚再打老虎'
str.charCodeAt()// 23567
str.charCodeAt(3)// 26202
str.charCodeAt('3')// 26202
str.charCodeAt('')// 23567
str.charCodeAt(999)// NaN
str.charCodeAt(str.length)// 'NaN'
str.charCodeAt(str.length-1)// 34382

 

3、indexOf()

功能:

  • 根据第一个参数查找 str 中由左到右首次出现的索引,有则返回索引,没有则返回 -1
  • 传空值时,如果有第二个参数则返回第二个参数,如果没有返回0
  • 大小写敏感。

语法:str.indexOf(searchValue [, fromIndex])

参数:无参数返回-1

  • searchValue:目标字符串。
  • fromIndex:查找的开始位置索引,可选,范围在 0 ~ str.length-1 。不传此参数按 0 开始查找。

示例:

var str = '小强今晚再打tiger'
str.indexOf()// -1
str.indexOf('')// 0
str.indexOf('',3)// 3
str.indexOf('今晚')// 2
str.indexOf('今晚',5)// -1
str.indexOf('tiger',5)// 6
str.indexOf('Tiger')// -1

 

4、lastIndexOf()

功能:从右向左查找字符串,返回指定子字符串在 str 中由右到左首次出现的索引(与indexOf 功能基本相同,方向相反)。

语法:str.lastIndexOf(searchValue[, fromIndex])

参数:

  • searchValue:目标字符串。
  • fromIndex:在字符串中开始检索的位置,可选。范围 0 ~ str.length-1。如省略该参数,则将从字符串的最后一个字符开始检索。

示例:

var str = '小强今晚再打tiger'
str.lastIndexOf()// -1
str.lastIndexOf('')// 11
str.lastIndexOf('',6)// 6
str.lastIndexOf('',666)// 11
str.lastIndexOf('今晚')// 2
str.lastIndexOf('今晚',str.length-1)// 2
str.lastIndexOf('tiger',4)// -1
str.lastIndexOf('Tiger')// -1

 

5、match()

功能:返回匹配正则的字符。

语法:str.match(regexp)

参数:regexp,规定要查找的字符串值或待匹配的 RegExp 对象。

返回值:

  • 如果使用g标志,则将返回与完整正则表达式匹配的所有结果,但不会返回捕获组。
  • 如果未使用g标志,则仅返回第一个完整匹配及其相关的捕获组。 在这种情况下,返回的项目将具有如下所述的其他属性。
    • groups: 一个捕获组数组 或 undefined(如果没有定义命名捕获组)。
    • index: 匹配的结果的开始位置。
    • input: 搜索的字符串。
  • 如未找到正则匹配的字符串返回null。

示例:

var str = '小强今晚再打tiger';
str.match(/\w/)// ["t", index: 6, input: "小强今晚再打tiger", groups: undefined]
str.match(/\w/g)// ["t", "i", "g", "e", "r"]
str.match('小强')// ["小强", index: 0, input: "小强今晚再打tiger", groups: undefined]
str.match('老虎')// null

 

6、replace()

功能:用一些字符替换 str 中的某些字符,或替换一个与正则表达式匹配的子字符串。

语法:str.replace(regexp | substr, newSubStr | function)

参数:第二个参数不传会用 undefined 替换

  • regexp (pattern):一个RegExp 对象或者其字面量。该正则所匹配的内容会被第二个参数的返回值替换掉。
  • substr (pattern):一个将被 newSubStr 替换的 字符串。其被视为一整个字符串,而不是一个正则表达式。仅第一个匹配项会被替换。
  • newSubStr (replacement):用于替换掉第一个参数在原字符串中的匹配部分的字符串。该字符串中可以内插一些特殊的变量名。
  • function (replacement):一个用来创建新子字符串的函数,该函数的返回值将替换掉第一个参数匹配到的结果。

返回值:替换后的一个新字符串,不修改原字符串。

示例:

var str = '小强今晚23点45分再打tiger';

var reg = /tiger/gi;
str.replace(reg, '老虎'); // "小强今晚23点45分再打老虎"

function reStrFn() {return '老鼠'}
str.replace(reg, reStrFn); // "小强今晚23点45分再打老鼠"

var subStr = '23点45分'
str.replace(subStr,'21点15分'); // "小强今晚21点15分再打tiger"

var timeReg = /([01][0-9]|[2][0-3])点[0-5][0-9]分/;
str.replace(timeReg,'20点55分'); // "小强今晚20点55分再打tiger"

str.replace('小强'); // "undefined今晚23点45分再打tiger"

 

7、search()

功能:在 str 中查找传入的字符串或正则匹配的字符,找到返回索引,没找到返回-1。

语法:str.search(regexp/substr)

参数:regexp/substr,规定子字符串或要匹配的 RegExp 对象。

返回值:原字符串中第一次匹配到目标字符串的起始位置。
search()方法不执行全局匹配,它将忽略标志 g。也就是说,它只匹配一次。若没匹配到结果,则返回-1。

示例:

var str = '小强今晚再打tiger';
str.search()// 0
str.search('')// 0
str.search(/\w/g)// 6
str.search('今晚')// 2
str.search('老虎')// -1

 

8、concat()

功能:用于连接两个或多个字符串。

语法:str.concat(string2, string3[, ..., stringN])

参数:string2...stringN,与原 str 链接的多个字符串

返回值:链接后的一个新字符串,不改变原 str。

concat方法不会修改原字符串。

示例:

var whoStr = '小强';
var whenStr = '今晚';
var times = '2';
var isFirstTime = (times>1)?'':'';
var toDoStr = '';
var whatStr = '老虎';

whoStr.concat(whenStr,isFirstTime,toDoStr,whatStr)// "小强今晚再打老虎"

 

9、split()

功能:使用指定字符串把原 str 分割成字符串数组,类似 Array.join( ) 的逆操作。

语法:str.split([separator[, limit]])

参数:

  • separator:字符串或正则表达式,从该参数指定的地方分割原str。
  • limit:限定返回数组的最大长度。

返回值:一个字符串数组。

示例:

var str = '今天天气很好,小强今晚再打老虎'
str.split('')// ["今", "天", "天", "气", "很", "好", ",", "小", "强", "今", "晚", "再", "打", "老", "虎"]
str.split('',5)// ["今", "天", "天", "气", "很"]
str.split('天')// ["今", "", "气很好,小强今晚再打老虎"]
str.split('今')// ["", "天天气很好,小强", "晚再打老虎"]

 

10、slice()

功能:截取 str 中指定的某部分字符串,并返回这部分字符串,与 Array.slice() 相似。

语法:str.slice(beginIndex[, endIndex])

参数:

  • beginIndex:截取的起始索引,不传默认从0开始,传负数则从 str.length + beginIndex 开始(即从倒第 beginIndex 个开始)。
  • endIndex:截取的结束索引,不传默认为 str.length ,传负数则从 str.length + endIndex 开始。

返回值:截取部分,一个新的字符串,原 str 不改变。

示例:

var str = '小强今晚再打tiger';
str.slice()// "小强今晚再打tiger"
str.slice(2)// "今晚再打tiger"
str.slice(2,3)// "今"
str.slice(6)// "tiger"
str.slice(-6)// "打tiger"
str.slice(-6,str.length-2)// "打tig"
str.slice(-6,-1)// "打tige"

 

11、substr()

功能:截取 str 中指定的某部分字符串,并返回这部分字符串。

语法:str.substr(beginIndex[, length])

参数:

  • beginIndex:截取的起始索引,不传默认为0,传负数则从 str.length + beginIndex 开始(即从倒第 beginIndex 个开始)。
  • length:截取字符串的长度,若未指定,则默认截取到 str 末尾。

返回值:截取部分,一个新的字符串,原 str 不改变。

注意:非 ECMAscript 标准化,将来或被移除,不建议使用。

示例:

var str = '小强今晚再打tiger';
str.substr()// "小强今晚再打tiger"
str.substr(2)// "今晚再打tiger"
str.substr(2,3)// "今晚再"
str.substr(6)// "tiger"
str.substr(-6)// "打tiger"
str.substr(-6,str.length-2)// "打tiger"
str.substr(-6,-1)// ""

 

12、substring()

功能:截取字符串中介于两个指定下标之间的字符(与slice相似,不过参数不接受负值)。

语法:str.substring(beginIndex[, endIndex])

参数:

  • beginIndex:截取的起始索引,不传默认为0,传负值默认为0。
  • endIndex:可选,截取的结束索引,若未指定,则默认截取到原字符串的末尾。

返回值:截取部分,一个新的字符串,原 str 不改变。

注意:两参数都是非负数时,如果 beginIndex 比 endIndex 数值大,会互换 beginIndex 与 endIndex 。

示例:

var str = '小强今晚再打tiger';
str.substring()// "小强今晚再打tiger"
str.substring(2)// "今晚再打tiger"
str.substring(2,3)// "今"
str.substring(3,2)// "今"
str.substring(6)// "tiger"
str.substring(-6)// "小强今晚再打tiger"
str.substring(6,str.length-2)// "tig"
str.substring(-6,str.length-2)// "小强今晚再打tig"
str.substring(-6,-1)// ""
str.substring(-6,-8)// ""

 

13、trim()

功能:去除 str 两端空白字符串(包含空格,tab等)。

语法:str.trim()

参数:无

返回值:去除空白字符串后的新字符串

示例:

var str = '  小强今晚再打tiger    ';
str.trim()// "小强今晚再打tiger"

 

14、localeCompare()

功能:基于本地环境对比两个字符串的排序,返回 -1 或 0 或 1。

语法:str.localeCompare(compareString[, locales[, options]])

参数:

  • compareString:用于和 str 对比的字符串
  • locales:可选。 用来表示一种或多种语言或区域的一个符合 BCP 47 标准的字符串或一个字符串数组。下列的 Unicode 扩展关键词是允许的:
    • co:为了某些地域多样的排序规则。可能的值包括: "big5han", "dict", "direct", "ducet", "gb2312", "phonebk", "phonetic", "pinyin", "reformed", "searchjl", "stroke", "trad", "unihan"。 "standard" 和"search" 这两个值是被忽略的; 它们被 options 的属性 usage 代替。
    • kn:指定数值排序是否应该被使用, 像是这样 "1" < "2" < "10"。 可能的值是 "true" 和 "false"。 这个选项能被通过options 属性设置或通过 Unicode 扩展。 假如两个都被设置了, 则 options 优先。("language-region-u-kn-true|false")。
    • kf:指定是否优先对大写字母或小写字母排序。 可能的值有 "upper", "lower", 或 "false" (use the locale's default)。这个选项能被通过options 属性设置或通过 Unicode 扩展。假如两个都被设置了, 则 options 优先。("language-region-u-kf-upper|lower|false")。
  • options:可选。 支持下列的一些或全部属性的一个对象:
    • localeMatcher:地域匹配算法的使用. 可能的值是 "lookup" 和 "best fit"; 默认的值是 "best fit"。
    • usage:指定比较的目标是排序或者是搜索. 可能的值是 "sort" 和 "search"; 默认是 "sort"。
    • sensitivity:指定排序程序的敏感度(Which differences in the strings should lead to non-zero result values.) 可能的有:
      • "base": 只有不同的字母字符串比较是不相等的. 举个例子: a ≠ b, a = á, a = A.
      • "accent": 只有不同的字母或读音比较是不相等的. 举个例子: a ≠ b, a ≠ á, a = A.
      • "case": 只有不同的字母或大小写比较是不相等的. 举个例子: a ≠ b, a = á, a ≠ A.
      • "variant": 不同的字母或读音及其它有区别的标志或大小写都是不相等的, 还有其它的差异可能也会考虑到. 举个例子: a ≠ b, a ≠ á, a ≠ A.
    • ignorePunctuation:指定是否忽略标点. 可能的值是 true and false; 默认为 false。
    • numeric:是否指定使用数字排序, 像这样 "1" < "2" < "10". 可能的值是 true 和 false; 默认为 false. 这个选项能被通过options 属性设置或通过 Unicode 扩展。假如两个都被设置了, 则 options 优先。 实现不用必须支持这个属性。
    • caseFirst:指定大小写有限排序. 可能的值有 "upper", "lower", or "false" (use the locale's default); 默认为 "false". 这个选项能被通过options 属性设置或通过 Unicode 扩展。假如两个都被设置了, 则 options 优先。 实现不用必须支持这个属性。

返回值:用于对比的字符串排序在str之前返回1,相同返回0,排序在str之后返回-1

示例:

var nStrArr = ['8','9','10','11','12'] 

nStrArr[2].localeCompare(nStrArr[0])// -1 众所周知 '10'<'8' === true
nStrArr[2].localeCompare(nStrArr[1])// -1 众所周知 '10'<'9' === true
nStrArr[2].localeCompare(nStrArr[2])//  0
nStrArr[2].localeCompare(nStrArr[3])// -1
nStrArr[2].localeCompare(nStrArr[4])// -1

nStrArr[2].localeCompare(nStrArr[0],{},{numeric:true})//  1
nStrArr[2].localeCompare(nStrArr[1],{},{numeric:true})//  1
nStrArr[2].localeCompare(nStrArr[2],{},{numeric:true})//  0
nStrArr[2].localeCompare(nStrArr[3],{},{numeric:true})// -1
nStrArr[2].localeCompare(nStrArr[4],{},{numeric:true})// -1

 

15、toLowerCase() / toUpperCase()

功能:把字符串转换为小写/大写。

语法:str.toLowerCase() / str.toUpperCase()

参数:无/无

返回值:一个新的字符串。

示例:

var str = 'Hello World';
console.log(str.toLowerCase()); //hello world
console.log(str.toUpperCase()); //HELLO WORLD

 

16、toLocaleLowerCase() / toLocaleUpperCase()

功能:根据本地环境把字符串转换为小写/大写。

语法:

  • 默认本地环境:str.toLocaleLowerCase() / str.toLocaleUpperCase()。
  • 单语言环境:str.toLocaleLowerCase(locale) / str.toLocaleUpperCase(locale)。
  • 多语言环境:str.toLocaleLowerCase([locale, locale, ...]) / str.toLocaleUpperCase([locale, locale, ...])。

参数:locale,要转换成小写/大写格式的特定语言环境。

返回值:一个新的字符串。

示例:

var str = 'Hello World';
console.log(str.toLocaleLowerCase()); //hello world
console.log(str.toLocaleLowerCase('TR')); //hello world
console.log(str.toLocaleLowerCase(['lt', 'LT', 'lt-LT', 'lt-u-co-phonebk', 'lt-x-lietuva'])); //hello world
console.log(str.toLocaleUpperCase()); //HELLO WORLD
console.log(str.toLocaleUpperCase('en-US')); //HELLO WORLD
console.log(str.toLocaleUpperCase(['lt', 'LT', 'lt-LT', 'lt-u-co-phonebk', 'lt-x-lietuva'])); //HELLO WORLD

 

17、includes()

功能:判断 str 中是否有指定字符串。

语法:str.includes(searchString[, position])。

参数:

  • searchString:要在 str 中查找的字符串。
  • position:可选。从哪个索引位置开始查找,默认值为0,传负值当0。

返回值:str 中有指定字符串,返回 true,没有返回 false。

示例:

var str = '小强今晚再打tiger';
str.includes('小明')// false
str.includes('今晚')// true
str.includes('今晚',1)// false
str.includes('再')// true
str.includes('再',6)// true
str.includes('打')// true
str.includes('打',9)// false
str.includes('老虎')// false
str.includes('tiger',6)// true
str.includes('tiger',-2)// true
str.includes('tiger',-999)// true

 

18、repeat()

功能:返回指定重复次数的字符串。

语法:str.repeat(count)

参数:count,重复的次数。

返回值:包含指定字符串的指定数量副本的新字符串,不改变原 str 。

示例:

var str = 'abcd'
str.repeat()// ""
str.repeat(0)// ""
str.repeat('')// ""
str.repeat(3)// "abcdabcdabcd"
str.repeat('2')// "abcdabcd"
str.repeat(-1)// Uncaught RangeError: Invalid count value

 

19、startsWith() 

功能:判断 str 是否以指定字符串开头。

语法:str.startsWith(searchString[, position])

参数:

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

返回值:str 以指定字符串开头返回true,否则返回false

示例:

var str = '小强今晚再打tiger';
str.startsWith()//false
str.startsWith('')// true
str.startsWith('',3)// true
str.startsWith('',str.length+999)// true
str.startsWith('小强',str.length+999)// false
str.startsWith('小强')// true
str.startsWith('小强',5)// false
str.startsWith('打tiger',5)// true
str.startsWith('打tiger',-5)// false
str.startsWith('打tiger',-6)// false
str.startsWith('打tiger',str.length-6)// true

 

20、 endsWith()

功能:判断 str 是否以指定字符串结尾。

语法:str.endsWith(searchString[, length])

参数:

  • searchString:要查找的子字符串。
  • length:可选。从 str 索引0开始查找的字符串长度。默认值为 str.length。

返回值:str 以指定字符串结尾返回true,否则返回false

示例:

var str = '小强今晚再打tiger';
str.endsWith()//false
str.endsWith('')// true
str.endsWith('',3)// true
str.endsWith('',str.length+999)// true
str.endsWith('',str.length-999)// true 只要第一个参数为空字符串都返回true
str.endsWith('打tiger',str.length+999)// true
str.endsWith('ger')// true
str.endsWith('ger',5)// false 第二个参数指定为5,即判断 '小强今晚再' 是否以ger结尾,实则是以'再'结尾,返回false
str.endsWith('小强今晚',3)// false
str.endsWith('小强今晚',4)// true
str.endsWith('小强今晚',4.000000001)// true 结合上下例子可以看出length进行了取整
str.endsWith('小强今晚',4.999999)// true
str.endsWith('小强今晚',5)// false
str.endsWith('打tiger',-6)// false 第二个参数负值都返回false
str.endsWith('打tiger',str.length-6)// false
str.endsWith('再',str.length-6)// true
str.endsWith('打tiger',str.length)// true

 

21、padStart() / padEnd()

功能:从 str 开头 / 结尾 重复填充指定字符串,直到指定的填充后的长度。

语法:str.padStart(targetLength [, padString]) / str.padEnd(targetLength [, padString])

参数:

  • targetLength:返回的填充后的新字符串长度。小于 str.length 时,则返回 str 本身。
  • padString:可选,填充字符串。如果字符串太长,使填充后的字符串长度超过了 str.length,则只保留最 左侧 / 右侧  的部分,其他部分会被截断。不传此参数默认为空字符串。

返回值:从 str 开头 / 结尾 填充指定的字符串直到指定长度,并返回填充后的新字符串。

示例:

var str = 'abc'
str.padStart()// "abc"
// str.padStart(10)// "       abc"
// str.padStart(10,'123')// "1231231abc"
// str.padStart(0,'123')// "abc"
// str.padStart(str.length,'123')// "abc"
// str.padStart(str.length+5,'123')// "12312abc"

var str = 'abc'
str.padEnd()// "abc"
str.padEnd(10)// "abc       "
str.padEnd(10,'123')// "abc1231231"
str.padEnd(0,'123')// "abc"
str.padEnd(str.length,'123')// "abc"
str.padEnd(str.length+5,'123')// "abc12312"

String.prototype 常用方法功能分类

  • 首尾去空:trim()
  • 正则匹配:match()
  • 截成数组:split()
  • 链接字符:concat()
  • 重复字符:repeat()
  • 替换字符:replace()
  • 对比字符:localeCompare()
  • 截取字符:slice()、substr()、substring()
  • 检测字符:includes()、startsWith() 、endsWith() 
  • 获取字符、编码:charAt()、charCodeAt()
  • 获取索引:indexOf()、lastIndexOf()、search()
  • 前后填充:padStart()、padEnd()
  • 大小写转换:toLowerCase()、toUpperCase()、toLocaleLowerCase()、toLocaleUpperCase()

 

 

 

JavaScript 中的三大对象 (本地对象、内置对象、 宿主对象)

本地对象

 

内置对象

 

宿主对象

 

posted @ 2020-05-11 14:01  elfpower  阅读(826)  评论(0编辑  收藏  举报