以致和String对象相关的方式

本文主要介绍并剖判JavaScript中String对象的切切实实用法,甚至和String对象相关的措施,方便开采者在JavaScript开采中更加好地拍卖字符串。

1. 介绍

String
对象,对字符串举办操作,如:截取风华正茂段子串、查找字符串/字符、调换大小写等等。

2. 概念方式

2.1 new String(Value卡塔尔 结构函数:重临一个剧情为Value的String对象
参数:

①value {String} :字符串

返回值:

{String对象} 再次来到二个内容为Value的String对象

示例:

var demoStr = new String('abc');
console.log(typeof demoStr); // => object
console.log(demoStr); // => abc

2.2 直接赋值(推荐State of Qatar
示例:

var demoStr = 'abc';
console.log(typeof demoStr); // string
console.log(demoStr); // => abc

3. 实例属性

3.1 length :重返字符串中的字符数

var s = 'abc';
console.log(s.length); // => 3
console.log('新年快乐'.length); // => 4 :一个中文字符也计算为1个数量
console.log(''.length); // => 0 :空字符串返回0

4. 实例方法

只顾:字符串的实例方法不会变动字符串的自己,只回去操作后的结果。

4.1 charAt(indexState of Qatar:重临叁个字符串中钦命地方的字符,编号从0起初,若传入个空头支票的数值,就回来空字符串
参数:

①index {int} :地点索引,从0在此之前估摸

返回值:

{string}
重返一个字符串中钦赐地点的字符;若传入个不设有的任务数值,重临三个空字符串

示例:

var s = 'abc';
console.log(s.charAt(1)); // => b :返回位置为1的字符
console.log(s); // => 不影响原来的数组
console.log(s.charAt(5)); // => '' :获取一个不存在位置的字符,返回一个长度为0的空字符串

4.2 charCodeAt(indexState of Qatar :重临二个字符串中内定地点字符的Unicode编码
参数:

①index {int} :地方索引,从0伊始总括

返回值:

{number} 
重临一个字符串中钦定地点字符的Unicode编码;若传入个空中楼阁的岗位数值,再次回到NaN

示例:

var s = 'abc';
console.log(s.charCodeAt(0)); // => 98 :字符b的Unicode编码
console.log(s.charCodeAt(5)); // => NaN :获取一个不存在位置的字符,返回NaN

4.3 concat(value1,value2 … valueN卡塔尔:连接贰个或多个字符串,并重返连接后的字符串
参数:

①value1,value2 … valueN {string} :多个或四个字符串

返回值:

{string}  返回连接后的字符串

示例:

var s = 'abc';
console.log(s.concat('d')); // => abcd
console.log(s); // => abc :不影响原先的字符串
console.log(s.concat('d', 'e')); // => abcde

4.4 indexOf(value , |startPosition State of Qatar:在实例中之前以往寻觅叁个字符串或字符,并回到找到的职位(从0起头计数卡塔尔(قطر‎。若未找到,再次回到-1
参数:

①value  {string} :查找的字符串

②startPosition {int} 可选 :开头查找的初步地方,默许从地方0开始查找

返回值:

{int}  再次来到找到的职位(从0带头计数卡塔尔。若未找到,再次回到-1

示例:

var s = 'abc';
console.log(s.indexOf('b')); // => 1
console.log(s.indexOf('d')); // => -1 :未找到
console.log(s.indexOf('b', 2)); // => -1 :从位置2(第3个字符处)开始查找

4.5 lastIndexOf(value , |startPosition 卡塔尔国:在实例中从后往前初阶查找一个字符串或字符,并回到找到的岗位(从0开始计数卡塔尔(قطر‎。若未找到,重回-1
参数:

①value  {string} :查找的字符串

②startPosition {int} 可选 :初步查找的发端地点,暗中同意从最后伊始查找

返回值:

{int}  重回找到的岗位(从0在此以前计数卡塔尔。若未找到,重回-1

示例:

var s = 'abcabc';
console.log(s.lastIndexOf('a')); // => 3 :从后往前查找
console.log(s.lastIndexOf('d')); // => -1 :未找到返回-1
console.log(s.lastIndexOf('a', 2)); // => 0 :从位置2(第3个字符处)开始往前查找

4.6 localeCompare(value卡塔尔(قطر‎ :实例与参数进行相比较,重返相比较结实
参数:

①value  {string} :需比较的字符串

返回值:

0 :实例比参数大

1 :实例与参数相等

-1 :实例比参数小

示例:

var s='abc';
console.log(s.localeCompare('ab')); // => 1 :实例比参数大
console.log(s.localeCompare('abc')); // => 0 :实例与参数相等
console.log(s.localeCompare('abd')); // => -1 :实例比参数小

4.7 match(regexpState of Qatar :使用正则表明式举行相称查找
参数:

①regexp {regexp} :正则表达式,eg:/d+/

返回值:

依附正则表明式是不是带属性’g’,重返不一致的结果;若没相称,就赶回 {null}:

①正则表明式不带属性’g’,推行三次相配,重回{单个相称}结果对象,对象富含以下属性:

数组序号:表示至极结果,0为相配文本,1为从不负义务右第二个圆括号相称结果,2为第叁个圆括号,依此类推

index属性:表示相称文本在相称源的上马地方

input属性:表示匹配源

②正则说明式带属性’g’,推行全局相称,找到字符串全部配成对象,重回一个{字符串数组}:数组成分包涵string中的每叁个特别对象,不分包正则表明式括号内的字串,也不提供index和input属性。

示例:

// 1.单个匹配
var s = 'a1b2c3d4';
var mc = s.match(/d+/); // => 获取第一个正则匹配的结果
if (mc != null) {
    console.log(mc.index); // => 1 :匹配结果在匹配源的起始位置
    console.log(mc.input) // => a1b2c3d4 :匹配源
    console.log(mc[0]); // => 1 :获取匹配到的结果
}
// 2.全局匹配
var mcArray = s.match(/d+/g); // => 获取全部正则匹配的数字
if (mcArray != null) {
    for (var i = 0,len=mcArray.length; i < len; i++) {
        var mc=mcArray[i];
        console.log(mc); // => 1,2,3,4 :获取匹配到的结果
    }
}
// 3.带括号的匹配
s = 'a1b2c3d4';
mc = s.match(/[a-z]([1-9])/); // => 获取第一个正则匹配的结果
if (mc != null) {
    console.log(mc.index); // => 0 :匹配结果在匹配源的起始位置
    console.log(mc.input) // => a1b2c3d4 :匹配源
    console.log(mc[0]); // => a1 :序号0表示匹配到的结果
    console.log(mc[1]); // => 1 :序号1表示第一个括号内的子匹配结果
}

4.8  replace(regexp, replaceStr卡塔尔:替换正则表达式相称的子串,并赶回替换后的字符串
参数:

①regexp {regexp} :正则表达式。eg:/d+/

②replaceStr {string | function} :

1)倘若字符串,表示替换的字符串,匹配到字串都替换到此字符串;

字符串中的$字符有特殊的意思:

$1,$2 … $99 :表示①参从左到右圆括号的匹配子项

$& :表示全部①参匹配的子项

$$ :新币符号

2)假诺函数,表示每种相称结果都调用此函数,函数的当世无双参数为相称结果,并赶回叁个交替结果。

返回值:

{string} 重返三个替换后的字符串

示例:

var oldStr = 'a1b2c3d4';
// 1.正则匹配到【所有】数字,替换成:','逗号
var newStr = oldStr.replace(/d+/g, ',');
console.log(newStr); // => a,b,c,d,
// 2.正则匹配到【所有】数字,替换成:匹配结果 + ','逗号
newStr = oldStr.replace(/d+/g, '$&,');
console.log(newStr); // => a1,b2,c3,d4,
// 3.正则匹配到【所有】数字,每个匹配结果都调用函数,并返回替换后的结果
newStr = oldStr.replace(/d+/g, function (word) {
    if (word % 2 == 0) {
        return '偶';
    }
    return '奇';
});
console.log(newStr); // => a奇b偶c奇d偶

4.9 search(regexpState of Qatar :再次来到找寻正则表明式第叁个优越的职分
参数:

①regexp {regexp} :正则表明式。eg:/d+/

返回值:

{int} 重回第贰个相当的结果的地点;若没找到相配结果重返-1

示例:

console.log( 'abcd'.search(/d+/) ); // => -1 :没有找到数字
console.log( 'abcd1234'.search(/d+/) ); // => 4 :位置序号为4,返回第一个数字的位置

4.10  slice(start, |end卡塔尔(قطر‎:再次来到从字符串start地方到end前八个地点的子串
参数:

①start {int} :子串提取的开头地点索引(包罗此职责的字符卡塔尔。

若数字为负,表示从字符串尾巴部分初始酌量。如:-1表示倒数一个字符串,-2代表尾数第三个字符。

②end {int} 可选:子串提取的告竣地点索引(不富含此岗位的字符卡塔尔(قطر‎。

若数字为负,表示从字符串尾巴部分初步思谋。如:-1表示尾数贰个字符串,-2表示尾数第二个字符。

若省略此参数,重回从start地点到停止的有所字符。

注意:

子串的提取顺序是从左到有,若start索引地方大于end索引地方,将赶回三个空字符串。

返回值:

{string} 重回从字符串start地点到end前叁个职位的子串。

示例:

var s = 'abcdefg';
console.log( s.slice(1) ); // bcdefg :省略end参数,结束位置为末尾
console.log( s.slice(1, 3) ); // bc :返回从位置序号1到位置序号2(end前一个位置)的子串
console.log( s.slice(-3) ); // efg :返回从倒数第三个开始到末尾的所有字符
console.log( s.slice(-3, -1) ); // ef :返回从倒数第三个开始到第二个(end前一个位置)的所有字符

4.11 split(delimiter, |arrayLength):将字符串根据某种分隔符切分成三个由字符串组成的数组并赶回
参数:

①delimiter {regexp | string} :钦定的分隔符,可以为正则表明式或字符串。

②arrayLength {int} 可选 :分割数组的长度。若省略,再次来到全体分割的子串。

注意:

若分隔符在字符串的首先个或最终三个,将助长叁个空字符串到再次来到的数组。

返回值:

{ string[] } 重返三个由字符串组成的数组。

示例:

console.log( 'a,b,c,d,e'.split(',') ); // => ["a", "b", "c", "d", "e"]
console.log( ',a,b,c,d,e,'.split(',') ); // => ["", "a", "b", "c", "d", "e", ""] :分隔符在最前或最后面,会添加一个空字符串
console.log( 'a,b,c,d,e'.split(',',3) ); // => ["a", "b", "c"] :返回前3个分割的子串
console.log( 'a1b2c3d4e'.split(/d/) ); // => ["a", "b", "c", "d", "e"] :将数字来做为分隔符

4.12 substr(start,
|wordLengthState of Qatar:再次回到从字符串start地方上马测度到wordLength个长度的子串
参数:

①start {int} :子串提取的始发地点索引(包含此岗位的字符卡塔尔国。

若数字为负,表示从字符串尾部开端构思。如:-1意味着倒数二个字符串,-2代表尾数第二个字符。

②wordLength {int} 可选
:提取字符的长度。若省略此参数,再次来到从start地方到完工的装有字符。

返回值:

{string} 重临提取的字符串

示例:

ar s = 'abcdefg';
onsole.log( s.substr(0) ); // =>  abcdefg :省略第二个参数,返回从位置序号0开始,一直到最后的字符
onsole.log( s.substr(0, 3) ); // => abc :返回从位置序号0开始,计数3个字符
onsole.log( s.substr(2, 4) ); // => cdef :返回从位置序号2开始,计数4个字符
onsole.log( s.substr(-2, 3) ); // fg :返回从倒数第二个字符串开始,计数3个(超过字符长度,就只返回可统计的字符)

4.12 substr(start,
|wordLengthState of Qatar:重返从字符串start地点上马估算到wordLength个长度的子串
参数:

①start {int} :子串提取的开首地方索引(包含此职分的字符卡塔尔国。

若数字为负,表示从字符串尾部开端寻思。如:-1意味尾数二个字符串,-2表示尾数第2个字符。

②wordLength {int} 可选
:提取字符的尺寸。若省略此参数,再次来到从start地点到结束的有所字符。

返回值:

{string} 重返提取的字符串

示例:

ar s = 'abcdefg';
onsole.log( s.substr(0) ); // =>  abcdefg :省略第二个参数,返回从位置序号0开始,一直到最后的字符
onsole.log( s.substr(0, 3) ); // => abc :返回从位置序号0开始,计数3个字符
onsole.log( s.substr(2, 4) ); // => cdef :返回从位置序号2开始,计数4个字符
onsole.log( s.substr(-2, 3) ); // fg :返回从倒数第二个字符串开始,计数3个(超过字符长度,就只返回可统计的字符)

4.13 substring(start, |end卡塔尔:重回从字符串start地方到end前三个职分的子串
参数:

①start {int}
:子串提取的初步地点索引(富含此岗位的字符卡塔尔(قطر‎。数字无法为负数,若为负数按0来管理

②end {int}
可选:子串提取的了断地方索引(不包含此岗位的字符卡塔尔(قطر‎。数字无法为负数,若为负数按0来管理

返回值:

{string} 重回从字符串start地方到end前一个职责的子串。

示例:

var s = 'abcdefg';
console.log( s.substring(0) ); // =>  abcdefg :省略end参数,返回从位置序号0开始,一直到最后的字符
console.log( s.substring(0, 3) ); // => abc :返回从位置序号0开始到位置序号2(②参的前一个)的字符
console.log( s.substring(2, 4) ); // => cd :返回从位置序号2开始到位置序号3(②参的前一个)的字符
console.log( s.substring(-3, 3) ); // abc :参数若为负,就按数字0来处理,所以此参数实际返回位置序号0到位置序号3的字符

4.14 toUpperCase(卡塔尔(قطر‎ :将字符串调换为大写并赶回

4.15 toUpperCase(State of Qatar :将字符串调换为小写并赶回

4.16 trim(State of Qatar :移除字符串开首和结尾处的空白字符并回到

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website