js中字符串的常用方法(包含es6扩展)

一、字符方法
charAt方法和charCodeAt方法
相同点:charAt方法和charCodeAt方法都接收一个参数,基于0的字符位置
不同点:charAt方法是以单字符字符串的形式返回给定位置的那个字符
charCodeAt方法获取到的不是字符而是字符编码
还可以使用方括号加数字索引来访问字符串中特定的字符
例如:
var str = 'hello world';
console.log(str.charAt(1));// e
console.log(str.charCodeAt(1));// 101
console.log(str[1]);// e

二、字符串方法
1、concat()
作用:连接多个字符串,并返回一个新的字符串,不对源字符串做操作
例如:
var str = 'hello ';
var str1 = str.concat('world');
var str2 = str.concat('zhangsan', '!');
console.log(str1);// hello world
console.log(str2);// hello zhangsan!
console.log(str);// hello

2、slice方法、substring方法、substr方法
slice方法:
第一个参数指定子字符串开始位置,第二个参数表示子字符串最后一个字符后面的位置,
如果只有一个参数n,返回的是从n-1位置开始到字符串结尾的字符串
如果两个参数都是整数,同为正或同为负,第二个参数必须必第一个参数大,否则返回的是空字符串
如果第一个参数是负数,第二个参数是非负正数的时候,均返回空字符串
如果第一个参数是0,第二个参数是正数n,返回的是从0位置开始到n-1位置结束的字符串
如果第一个参数是0正数n,第二个参数是负数m,返回的是从0或n开始到从右边数第m-1位置结束的字符串
如果两个参数均为负数m、n,m<n的时候,返回的是从右边第|n|+1位置开始到第|m|位置结束的字符串
var str = 'hello world';
console.log(str.slice(3));// lo world
console.log(str.slice(-1, -3));// 空字符串
console.log(str.slice(3, 1));// 空字符串
console.log(str.slice(-1, 0));// 空字符串
console.log(str.slice(-1, 2));// 空字符串
console.log(str.slice(0, 2));// he
console.log(str.slice(0, -1));// hello worl
console.log(str.slice(1, -3));// ello wo
console.log(str.slice(-3, -1));// rl
console.log(str);// hello world

substring方法:
第一个参数指定子字符串开始位置,第二个参数表示子字符串最后一个字符后面的位置
如果只有一个参数n,返回的是从n-1位置开始到字符串结尾的字符串
如果两个参数都是整数m,n,如果第二个参数m<0,会被转成n=0,截取的结果是从0到m-1位置的字符串
如果两个参数都是整数m,n,如果n<m,会被转换成str.substring(n, m);
例如:
var str = 'hello world';
console.log(str.substring(3));// lo world
console.log(str.substring(3, 0));// hel
console.log(str.substring(3, -1));// hel
console.log(str.substring(3, 1));// el

substr方法
第一个参数指定子字符串开始位置,第二个参数表示返回的字符个数
如果只有一个参数n,返回的是从n-1位置开始到字符串结尾的字符串
如果有两个参数m,n,如果n<0,返回空字符串,否侧返回从m-1位置开始的长度为n的字符串,如果m+n-1>字符串的长度减一,则返回的是从m-1位置开始到字符串结尾的字符串
var str="hello world";
console.log(str.substr(3));//lo world
console.log(str.substr(3,7));//lo worl 7表示返回7个字符
console.log(str.substr(3,-4));//""空字符串

字符串位置方法
indexOf方法和lastIndexOf方法都是从一个字符串中搜索给定的子字符串,然后返回子字符串的位置,如果没有找到,则返回-1
indexOf方法是从字符串的开头向后搜索子字符串,lastIndexOf方法正好相反
这两个方法都可以接收两个参数:要查找的子字符串和查找的位置
例如:
var str="hello world";
console.log(str.indexOf("o"));//4
console.log(str.lastIndexOf("o"));//7
console.log(str.indexOf("o",6));//7
console.log(str.lastIndexOf("o",6));//4

trim方法
trim方法用来删除字符串前后的空格,不会改变源字符串
例如:
var str=" hello world ";
console.log('('+str.trim()+')');//(hello world)
console.log('('+str+')');//( hello world )

字符串大小写转换方法
var str="HELLO world";
console.log(str.toLowerCase());//hello world
console.log(str.toUpperCase());//HELLO WORLD

replace方法
var str="cat,bat,sat,fat";
var res=str.replace("at","one");//第一个参数是字符串,所以只会替换第一个子字符串
console.log(res);//cone,bat,sat,fat
var res1=str.replace(/at/g,"one");//第一个参数是正则表达式,所以会替换所有的子字符串
console.log(res1);//cone,bone,sone,fone

split方法
split方法是基于指定的字符,将字符串分割成字符串数组,当指定的字符为空字符串时,将会分隔整个字符串
var str="red,blue,green,yellow";
console.log(str.split(","));//["red", "blue", "green", "yellow"]
console.log(str.split(",",2));//["red", "blue"] 第二个参数用来限制数组大小
console.log(str.split(/[^,]+/));// ["", ",", ",", ",", ""] //第一项和最后一项为空字符串是因为正则表达式指定的分隔符出现在了子字符串的开头,即"red"和"yellow"
//[^...] 不在方括号内的任意字符 只要不是逗号都是分隔符

字符串模式匹配方法
match方法:只接受一个参数,由字符串或RegExp对象指定的一个正则表达式
search方法:只接受一个参数,由字符串或RegExp对象指定的一个正则表达式
search方法返回字符串中第一个匹配项的索引,如果没有匹配项,返回-1
例如
var str="cat,bat,sat,fat";
var pattern=/.at/;
var matches=str.match(pattern);
console.log(matches.index);//0
console.log(matches[0]);//cat
console.log(pattern.lastIndex);//0
//lastIndex表示开始搜索下一个匹配项的字符位置,从0算起
var pos=str.search(/at/);
console.log(pos);//1 1表示at字符串在原来字符串中第一次出现的位置

localeCompare方法
这个方法用于比较两个字符串
1.如果字符串在字母表中应该排在字符串参数之前,则返回一个负数
2.如果字符串等于字符串参数,则返回0
3.如果字符串在字母表中应该排在字符串参数之后,则返回一个正数
例如:
var str="yellow";
console.log(str.localeCompare("brick"));//1
console.log(str.localeCompare("yellow"));//0
console.log(str.localeCompare("zoo"));//-1

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容