韦德国际1946英国 > 计算机网络 > 字符串常用操作小结,JavaScript中字符串方法汇集

原标题:字符串常用操作小结,JavaScript中字符串方法汇集

浏览次数:184 时间:2019-08-24

stringObject.substr(start,length)

JavaScript 字符串常用操作小结(极其实用),javascript小结

字符串截取

1. substring()

xString.substring(start,end)

substring()是最常用到的字符串截取方法,它能够吸取五个参数(参数不可能为负值),分别是要截取的开始地方和终结地方,它将回到二个新的字符串,其内容是从start处到end-1处的保有字符。若结束参数(end)省略,则象征从start地点平昔截取到结尾。

let str = 'www.jeffjade.com'
console.log(str.substring(0,3)) // www
console.log(str.substring(0)) //www.jeffjade.com
console.log(str.substring(-2)) //www.jeffjade.com (传负值则视为0)

2. slice()

stringObject.slice(start, end)

slice()方法与substring()方法充裕周围,它传播的八个参数也分别对应着起来地方和甘休地方。而分歧在于,slice()中的参数可感到负值,即使参数是负数,则该参数规定的是从字符串的尾部开始算起的职位。也正是说,-1 指字符串的末梢贰个字符。

let str = 'www.jeffjade.com'
console.log(str.slice(0, 3)) // www
console.log(str.slice(-3, -1)) // co
console.log(str.slice(1, -1)) // www.jeffjade.co
console.log(str.slice(2, 1)) // '' (返回空字符串,start须小于end)
console.log(str.slice(-3, 0)) // '' (返回空字符串,start须小于end)

3. substr()

stringObject.substr(start,length)

substr()方法可在字符串中收取从start下标开头的钦点数量的字符。其重返值为贰个字符串,包括从 stringObject的start(饱含start所指的字符)处最早的length个字符。如果未有一些名 length,那么重临的字符串包罗从start到stringObject的尾声的字符。其它假使start为负数,则意味着从字符串尾部先导算起。

let str = 'www.jeffjade.com'
console.log(webStr.substr(1, 3)) // ww.
console.log(webStr.substr(0)) // www.jeffjade.com
console.log(webStr.substr(-3, 3)) // com
console.log(webStr.substr(-1, 5)) // m (目标长度较大的话,以实际截取的长度为准)

4. split()

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

separator 内定用来分割字符串的字符(串)。separator 能够是一个字符串或正则表明式。 假诺马虎separator,则赶回整个字符串的数组方式。若是 separator 是四个空字符串,则 str 将会把原字符串中各类字符的数组格局再次回到。

limit 二个整数,限定再次来到的细分片段数量。split 方法依然分割每二个一双两好的 separator,然则回到的数组只会截取最多 limit 个要素。

let str = 'www.jeffjade.com'
str.split('.') // ["www", "jeffjade", "com"]
str.split('.', 1) // ["www"]
str.split('.').join('') // wwwjeffjadecom

话说那一个函数真心好用,相当多时候的字符截取须求,正是依赖于有个别字符;而以上三个函数都需清楚其岗位。大家本来能够借助 indexOf 等办法赢得,很引人瞩目这很麻烦;而借助于 split 则呈现更易于。

查找类方法

1. indexOf() & includes()

stringObject.indexOf(searchValue,fromIndex)

indexOf()用来索求钦赐的字符串值在字符串中第2回出现的岗位。它能够吸取五个参数,searchValue 表示要物色的子字符串,fromIndex 表示查找的最早地方,省略的话则从起头地方张开搜索。

let str = 'www.jeffjade.com'
console.log(str.indexOf('.')) // 3
console.log(str.indexOf('.', 1)) // 3
console.log(str.indexOf('.', 5)) // 12
console.log(str.indexOf('.', 12)) // -1

纵然如此 indexOf()用来寻找钦赐的字符串值在字符串中第一遍面世的地方,可是无数时候,使用它的气象在于判别字符串中是还是不是存在内定的字符串;因而代码就能如此:

if (str.indexOf('yoursPecifiedStr') !== -1) {
// do something
}

要通晓在那样的情景下,ES6 语言中的includes()就体现更优雅好些个;includes() 方法用于剖断一个字符串是或不是被含有在另贰个字符串中,若是是回到true,不然再次来到false。

str.includes(searchString[, position])

searchString 就要搜寻的子字符串。position 可选。从方今字符串的哪位索引地点上马搜寻子字符串;默感觉0。需求小心的是,includes() 是分别轻重缓急写的。

'Blue Whale'.includes('blue'); // returns false
'乔峰乔布斯乔帮主'.includes('乔布斯'); // returns true
if (str.includes('yoursPecifiedStr')) {
// do something(这样写是不是更为人性化?Yeah,这是一个更趋向人性化的时代嘛)
}

2. lastIndexOf()

stringObject.lastIndexOf(searchValue,fromIndex)

lastIndexOf()语法与indexOf()类似,它回到的是三个点名的子字符串值最终出现的地点,其招来顺序是从后迈入。

let str = 'www.jeffjade.com'
console.log(str.lastIndexOf('.')) // 12
console.log(str.lastIndexOf('.', 1)) // -1
console.log(str.lastIndexOf('.', 5)) // 3
console.log(str.lastIndexOf('.', 12)) // 12
search()
stringObject.search(substr)
stringObject.search(regexp)

search()方法用于检索字符串中钦赐的子字符串,或查究与正则表明式相相称的子字符串。它会重返第一个门道相当的子字符串的原初地点,若无相配的,则赶回-1。

let str = 'www.jeffjade.com'
console.log(str.search('w')) // 0
console.log(str.search(/j/g)) // 4
console.log(str.search(/./g)) // 3

match()方法

stringObject.match(substr) stringObject.match(regexp)

match()方法可在字符串内找寻内定的值,或找到三个或五个正则表明式的相当。

设若参数中传唱的是子字符串或是未有开展全局相配的正则表达式,那么match()方法会从起初地方实践三回相称,若无匹配到结果,则赶回null。不不过会再次回到一个数组,该数组的第0个成分存放的是相称文本,除却,再次回到的数组还包蕴三个对象属性index和input,分别代表万分文本的开始字符索引和stringObject 的援引(即原字符串)。

let str = '#1a2b3c4d5e#';
console.log(str.match('A')); //返回null
console.log(str.match('b')); //返回["b", index: 4, input: "#1a2b3c4d5e#"]
console.log(str.match(/b/)); //返回["b", index: 4, input: "#1a2b3c4d5e#"]

如若参数字传送入的是负有全局相配的正则表明式,那么match()从初阶地方举办数次合营,直到最后。如果未有相称到结果,则赶回null。不但是会重临一个数组,数组中寄存全数符合供给的子字符串,并且未有index和input属性。

let str = '#1a2b3c4d5e#'
console.log(str.match(/h/g)) //返回null
console.log(str.match(/d/g)) //返回["1", "2", "3", "4", "5"]

另外措施

replace()方法

stringObject.replace(regexp/substr,replacement)

replace()方法用来开展字符串替换操作,它基本上能用多个参数,后者为被沟通的子字符串(能够是正则),前者为用来替换的文本。

假设第叁个参数字传送入的是子字符串或是未有展开全局匹配的正则表明式,那么replace()方法将只举行壹次替换(即替换最前头的),重回经过二回替换后的结果字符串。

let str = 'www.jeffjade.com'
console.log(str.replace('w', 'W')) // Www.jeffjade.com
console.log(str.replace(/w/, 'W')) // Www.jeffjade.com

假若第二个参数字传送入的大局相配的正则表明式,那么replace()将会对符合条件的子字符串进行频仍交替,最后回来经过多次沟通的结果字符串。

let str = 'www.jeffjade.com'
console.log(str.replace(/w/g, 'W')) // WWW.jeffjade.com
toLowerCase() & toUpperCase()
stringObject.toLowerCase()
stringObject.toUpperCase()

toLowerCase()方法能够把字符串中的大写字母调换为小写,toUpperCase()方法可以把字符串中的小写字母转变为大写。

let str = 'www.jeffjade.com'
console.log(str.toLowerCase()) // www.jeffjade.com
console.log(str.toUpperCase()) // WWW.JEFFJADE.COM

模板字符串

以此也是 ES6 才引进进来的新语法,来消除守旧出口String模板的不良难题;其效能之壮大,设计之亲呢,着实令人获得相当大满足感,好如久旱逢甘霖一般的酣畅。更何况,在当今 MVVM 前端框架大行其道的时日,使用 ES6 语法也是不用本人身材去顾虑包容性难题,对于培育 Dom Template 更是如虎生翼,令人喜欢。

对此他的运用,阮一峰在ECMAScript 6 入门有过详尽的描述以及示例,在此就不赘述。只必要精通大家能够像这么去操作了,试问爽否?

function ncieFunc() {
return "四海无人对夕阳";
}
var niceMan = "陈寅恪";
var jadeTalk = `一生负气成今日 n ${ncieFunc()} ,
语出 ${niceMan} 的《忆故居》。
`
console.log(jadeTalk)

运作之,Chrome Console 输出结果如下:

一生负气成后天
四处无人对夕阳 ,
语出 陈寅恪 的《忆故居》。

组成其法

审美 JavaScript 提供的String Api,依然有蛮多的,也是有微微吐弃的,也会有就要未来版本会出去的;那中间不乏很多也挺有用的,举例: charAt(x)、charCodeAt(x)、concat(v1, v2,…)、fromCharCode(c1, c2,…) 等等,还应该有 ES6 对字符串的扩充,比方 字符串的遍历器接口,repeat() 等等,那足以参见 ES6-string,这里就没有多少废话。

在实质上代码生产中,非常多时候要求用这几个提供的骨干办法,来打出一套组合拳,以化解其急需所需。很了然又有什么不可依靠prototype 属性,将自造的各路拳法,其归置于 String 对象,然后天亮啊。这一步就看个人喜好了,这里抛出一二段,以引大玉。

字符串反转

String.prototype.reverse = function () {
return this.split('').reverse().join('')
}

删除空白行

String.prototype.removeBlankLines = function () {
return this.replace(/(n[st]*r*n)/g, 'n').replace(/^[nrnt]*|[nrnt]*$/g, '')
}

String转化为数组

1, 转化为一维数组

气象是基于某子字符串转化,直接就用 split 就好;如若调换法则不统一,那么请自求多福吧。

let Str = '陈寅恪,鲁迅,钱钟书,胡适,王国维,梁启超,吴宓,季羡林'
let hallAllOfFameArr = Str.split(',')
console.log(hallAllOfFameArr)
// ["陈寅恪", "鲁迅", "钱钟书", "胡适", "王国维", "梁启超", "吴宓", "季羡林"]

2, 转化为二维数组

String.prototype.removeBlankLines = function () {
return this.replace(/(n[st]*r*n)/g, 'n').replace(/^[nrnt]*|[nrnt]*$/g, '')
}
String.prototype.strTo2dArr = function(firstSplit, secondSplit){
var contentStr = this.removeBlankLines(),
contentStrArr = contentStr.split(firstSplit),
resultArr = contentStrArr.map((element) => {
return element.split(secondSplit)
})
return resultArr
}
var str = `
渺渺钟声出远方,依依林影万鸦藏。
一生负气成今日,四海无人对夕阳。
破碎山河迎胜利,残馀岁月送凄凉。
松门松菊何年梦,且认他乡作故乡。
`
console.log(str.strTo2dArr('n', ','))

运行之,输出结果如下:

[ [ ‘渺渺钟声出远方', ‘依依林影万鸦藏。' ],
[ ‘毕生负气成明天', ‘四海无人对古稀之年。' ],
[字符串常用操作小结,JavaScript中字符串方法汇集。 ‘破碎山河迎胜利', ‘残馀岁月送凄凉。' ],
[ ‘松门松菊何年梦', ‘且认他乡作故乡。' ] ]

上述所述是笔者给大家介绍的JavaScript 字符串常用操作小结(特别实用),希望对大家持有帮助,即使大家有其余疑问请给自家留言,作者会及时还原我们的。在此也特别谢谢我们对帮客之家网址的支撑!

字符串常用操作小结(特别实用),javascript小结 字符串截取 1. substring() xString.substring(start,end) substring()是最常用到的字符串截取方法...

'Blue Whale'.includes('blue'); // returns false
'乔峰乔布斯乔帮主'.includes('乔布斯'); // returns true

if (str.includes('yoursPecifiedStr')) {
// do something(这样写是不是更为人性化?Yeah,这是一个更趋向人性化的时代嘛)
}
let str = '#1a2b3c4d5e#'
console.log(str.match(/h/g)) //返回null
console.log(str.match(/d/g)) //返回["1", "2", "3", "4", "5"]

search()

假使参数中传来的是子字符串或是未有开展全局相称的正则表明式,那么match()方法会从上马地方施行三回相称,若无相称到结果,则赶回null。不然而会回到三个数组,该数组的第0个因素存放的是同盟文本,除外,再次来到的数组还蕴藏七个指标属性index和input,分别表示万分文本的初叶字符索引和stringObject 的援用(即原字符串)。

let str = 'www.jeffjade.com'
console.log(str.replace(/w/g, 'W')) // WWW.jeffjade.com

模板字符串

组合其法

toLowerCase()方法可以把字符串中的大写字母转换为小写,toUpperCase()方法能够把字符串中的小写字母转变为大写。

match()方法

let str = 'www.jeffjade.com'
console.log(str.search('w')) // 0
console.log(str.search(/j/g)) // 4
console.log(str.search(/./g)) // 3

search()方法用于检索字符串中内定的子字符串,或查究与正则表明式相相配的子字符串。它会回来第多个卓殊的子字符串的发端地点,若无相称的,则赶回-1。

stringObject.lastIndexOf(searchValue,fromIndex)

let str = 'www.jeffjade.com'
console.log(str.indexOf('.')) // 3
console.log(str.indexOf('.', 1)) // 3
console.log(str.indexOf('.', 5)) // 12
console.log(str.indexOf('.', 12)) // -1
let str = 'www.jeffjade.com'
console.log(webStr.substr(1, 3)) // ww.
console.log(webStr.substr(0)) // www.jeffjade.com
console.log(webStr.substr(-3, 3)) // com
console.log(webStr.substr(-1, 5)) // m (目标长度较大的话,以实际截取的长度为准)

searchString 将要搜寻的子字符串。position 可选。从当下字符串的哪位索引地点上马搜寻子字符串;默以为0。要求注意的是,includes() 是分别轻重缓急写的。

3. substr()

只要第多少个参数传入的全局相配的正则表明式,那么replace()将会对符合条件的子字符串进行多次替换,最后回到经过三番两次交替的结果字符串。

删去空白行

要掌握在如此的场景下,ES6 语言中的includes()就呈现更优雅大多;includes() 方法用于判定三个字符串是不是被含有在另八个字符串中,如若是回到true,不然再次回到false。

slice()方法与substring()方法充足相近,它传播的多少个参数也独家对应着起来地方和甘休地点。而分化在于,slice()中的参数可感到负值,如若参数是负数,则该参数规定的是从字符串的尾部开端算起的岗位。相当于说,-1 指字符串的尾声三个字符。

stringObject.toLowerCase()
stringObject.toUpperCase()

别的方法

match()方法可在字符串内搜寻钦点的值,或找到贰个或四个正则表明式的协作。
若果参数中盛传的是子字符串或是未有开展全局相称的正则说明式,那么match()方法会从早先地方实践贰次相称,如果未有相称到结果,则赶回null。不不过会回到二个数组,该数组的第0个要素寄放的是相当文本,除外,重临的数组还含有多个目的属性index和input,分别代表杰出文本的开首字符索引和stringObject 的引用(即原字符串)。

function ncieFunc() {
return "四海无人对夕阳";
}
var niceMan = "陈寅恪";
var jadeTalk = `一生负气成今日 n ${ncieFunc()} ,
语出 ${niceMan} 的《忆故居》。
`
console.log(jadeTalk)
xString.substring(start,end)

2. lastIndexOf()

substr()方法可在字符串中收取从start下标初步的钦定数量的字符。其重返值为贰个字符串,饱含从 stringObject的start(满含start所指的字符)处开端的length个字符。若无一点点名 length,那么再次回到的字符串包罗从start到stringObject的结尾的字符。其余即便start为负数,则表示从字符串尾部开头算起。

lastIndexOf()语法与indexOf()类似,它回到的是三个钦定的子字符串值最终出现的岗位,其搜索顺序是从后迈入。

let str = 'www.jeffjade.com'
console.log(webStr.substr(1, 3)) // ww.
console.log(webStr.substr(0)) // www.jeffjade.com
console.log(webStr.substr(-3, 3)) // com
console.log(webStr.substr(-1, 5)) // m (目标长度较大的话,以实际截取的长度为准)

stringObject.slice(start, end)

lastIndexOf()语法与indexOf()类似,它回到的是叁个钦命的子字符串值最终出现的职位,其找出顺序是从后迈入。

replace()方法

String.prototype.reverse = function () {
return this.split('').reverse().join('')
}

以此也是 ES6 才引进进来的新语法,来解决守旧出口String模板的倒霉难题;其效果之庞大,设计之亲近,着实令人获取比极大满意感,好如久旱逢甘霖一般的安适。更并且,在当今 MVVM 前端框架大行其道的时日,使用 ES6 语法也是毫不自己身形去忧虑包容性问题,对于作育 Dom Template 更是锦上添花,令人喜欢。

String.prototype.removeBlankLines = function () {
return this.replace(/(n[st]*r*n)/g, 'n').replace(/^[nrnt]*|[nrnt]*$/g, '')
}

String.prototype.strTo2dArr = function(firstSplit, secondSplit){
var contentStr = this.removeBlankLines(),
contentStrArr = contentStr.split(firstSplit),
resultArr = contentStrArr.map((element) => {
return element.split(secondSplit)
})
return resultArr
}

var str = `
渺渺钟声出远方,依依林影万鸦藏。
一生负气成今日,四海无人对夕阳。
破碎山河迎胜利,残馀岁月送凄凉。
松门松菊何年梦,且认他乡作故乡。
`
console.log(str.strTo2dArr('n', ','))

运行之,输出结果如下:
[ [ ‘渺渺钟声出远方’, ‘依依林影万鸦藏。’ ],[ ‘一生负气成今日’, ‘四海无人对夕阳。’ ],[ ‘破碎山河迎胜利’, ‘残馀岁月送凄凉。’ ],[ ‘松门松菊何年梦’, ‘且认他乡作故乡。’ ] ]

1. indexOf() & includes()

stringObject.indexOf(searchValue,fromIndex)
'Blue Whale'.includes('blue'); // returns false
'乔峰乔布斯乔帮主'.includes('乔布斯'); // returns true
if (str.includes('yoursPecifiedStr')) {
// do something(这样写是不是更为人性化?Yeah,这是一个更趋向人性化的时代嘛)
}

话说那个函数真心好用,比很多时候的字符截取供给,正是凭仗于某些字符;而以上七个函数都需清楚其岗位。大家本来能够借助 indexOf
等方法赢得,很精晓那很麻烦;而借助于 split
则展现更易于。
查找类方法
1. indexOf() & includes()

let str = 'www.jeffjade.com'
console.log(str.toLowerCase()) // www.jeffjade.com
console.log(str.toUpperCase()) // WWW.JEFFJADE.COM
stringObject.match(substr)
stringObject.match(regexp)

话说那个函数真心好用,相当多时候的字符截取须求,正是凭仗于有个别字符;而上述多个函数都需领悟其任务。大家当然能够依据indexOf 等办法获得,很引人瞩目这很麻烦;而借助于 split 则展现更轻便。

let str = '#1a2b3c4d5e#'
console.log(str.match(/h/g)) //返回null
console.log(str.match(/d/g)) //返回["1", "2", "3", "4", "5"]

重组其法

let str = 'www.jeffjade.com'
console.log(str.slice(0, 3)) // www
console.log(str.slice(-3, -1)) // co
console.log(str.slice(1, -1)) // www.jeffjade.co
console.log(str.slice(2, 1)) // '' (返回空字符串,start须小于end)
console.log(str.slice(-3, 0)) // '' (返回空字符串,start须小于end)

若是第一个参数字传送入的全局相配的正则表达式,那么replace()将会对符合条件的子字符串实行频仍调换,最终回到经过数十一第1轮换的结果字符串。

猜你喜悦/有用
JavaScript字符串间的可比
JavaScript对象length

2, 转化为二维数组

stringObject.replace(regexp/substr,replacement)

对此她的利用,阮一峰在ECMAScript 6 入门有过详细的陈述以及示例,在此就不赘述。只必要明白我们得以像这么去操作了,试问爽否?

let str = '#1a2b3c4d5e#';
console.log(str.match('A')); //返回null
console.log(str.match('b')); //返回["b", index: 4, input: "#1a2b3c4d5e#"]
console.log(str.match(/b/)); //返回["b", index: 4, input: "#1a2b3c4d5e#"]

本文由韦德国际1946英国发布于计算机网络,转载请注明出处:字符串常用操作小结,JavaScript中字符串方法汇集

关键词: 随笔

上一篇:php中DOMElement操作xml文档实例演示,php中操作xml文

下一篇:没有了