JavaScript字符串常见方法

Cris 2019-09-16 22:55:29
原文地址:https://segmentfault.com/a/1190000020339375

Javascript的字符串是不可变的,String类的所有方法不会改变某个字符串的原始值,而是返回一个新的字符串。

var s = 'hello, world';

属性

s.length // 12

原型方法

charAt

string.charAt(index)

取得字符串指定索引所在的字符
如果索引不再0~s.length-1之间,则返回一个空串

s.charAt(0) // h

在es5中字符串可以当成只读数组,除了使用charAt方法,也可以使用方括号的方法访问字符串的指定索引所在的字符。

s[0] // h

charCodeAt

string.charCodeAt(index)

取得字符串指定索引所在字符的Unicode编码一个16位的整数,取值在0~65,535之间
如果索引不再0~s.length-1之间,则返回NaN

s.charCodeAt(0) // 104

contact

string.contact(s1,...)

连接一个或多个字符串,相当于“+”运算符

s.concat('!', '!') // hello, world!!

indexOf

string.indexOf(subString);
string.indexOf(subString, start);

从指定位置start处(如果没有指定start,则从开头开始)从前向后查找是否含有子串subString,如果有子串,则返回子串subString第一次出现时,第一个字符所在的位置,如果没有找到子串,则返回-1.

s.indexOf('l') // 2
s.indexOf('l', 3) // 3

lastIndexOf

string.lastIndexOf(subString);
string.lastIndexOf(subString, start);

从指定位置start处(如果没有指定start,则从最后开始)从后向前查找是否含有子串subString,如果有子串,则返回子串subString第一次出现时,第一个字符所在的位置,如果没有找到子串,则返回-1.

s.lastIndexOf('l') // 10
s.lastIndexOf('l', 3) // 3

slice

string.slice(start)
string.slice(start, end)

返回从start位置开始且包含start,到end位置但不包含end之间的所有字符,若end不指定,则返回start位置且包含start,到当前字符串结尾的所有字符。
start和end可以为负数,若为负数,则从尾部开始计算,即-1表示最后一个字符,-2表示倒数第二个字符,以此类推。

s.slice(10) // rld
s.slice(10, 12) // rl
s.slice(-3, -1) // rl

substring

string.substring(from)
string.substring(from, to)

返回从from位置开始且包含from,到to位置但不包含to之间的所有字符,若to不指定,则返回from位置且包含from,到当前字符串结尾的所有字符。
from, to是非负整数,若from等于to,则返回空串,若from大于to,则会交换from和to。

s.substring(10) // rld
s.substring(10, 12) // rl
s.substring(12, 10) // rl

split

string.split(delimiter)
string.split(delimiter, limit)

返回按指定分割符delimiter切分字符串创建的数组,数组最大长度为limit,若不指定limit,则将切分整个字符串。
String.prototype.split是Array.prototype.join的反方法

'1:2:3:4:5'.split(':') // ['1','2','3','4','5']
'hello'.split('') // ['h','e','l','l','o']
'|a|b|c|'.split('|') // ['','a','b','c','']
'|a|b||c|'.split('|') // ['','a','b','',c','']
var words = sentence.split(/\s+/) // 将句子切分为单词

toLowerCase

将字符串中大写字母全部转换为小写字母

toUpperCase

将字符串中小写字母全部转换为大写字母

trim

去掉开头和结尾处的空白字符

静态方法

fromCharCode

String.fromCharCode(108, 111, 118, 101) // love

借用数组方法

借用数组的非变更方法

Array.prototype.filter.call(s, (item)=> item === 'l').join('') // lll

转化

通过调用字符串的split方法和数组的join方法,可以借用数组的任何方法

// 反转字符串
'123'.split('').reverse().join('') // 321

声明:该文章系转载,转载该文章的目的在于更广泛的传递信息,并不代表本网站赞同其观点,文章内容仅供参考。

本站是一个个人学习和交流平台,网站上部分文章为网站管理员和网友从相关媒体转载而来,并不用于任何商业目的,内容为作者个人观点, 并不代表本网站赞同其观点和对其真实性负责。

我们已经尽可能的对作者和来源进行了通告,但是可能由于能力有限或疏忽,导致作者和来源有误,亦可能您并不期望您的作品在我们的网站上发布。我们为这些问题向您致歉,如果您在我站上发现此类问题,请及时联系我们,我们将根据您的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。