Javascript中字符串相关常用的使用方法总结


Posted in Javascript onMarch 13, 2017

刚刚在看Javascript犀牛书,看到字符串这一节,平时工作接触到这方面的不多,想着整理下,以备不时只需。

JavaScript的内置功能之一就是字符串连接,如果用‘+'连接两个数字,表示两数相加。但是如果用于字符串,就表示第二个字符加在第一个字符之后。

var num=1+2;
console.log(num);
var msg='hello'+'world';
console.log(msg);

对于字符串来说,除了有length属性,还有很多其他有用的属性,如:

var str='hello,world';
console.log(str.length);
console.log(str.charAt(0)); //第一个字符 
console.log(str.charAt(str.length-1)); // 最后一个字符 
//substring(starti,endi), 截取 字符串 起始startistartii, 到endi结束,且含头不含尾,没有
// 如果第二个参数没有, 就默认截取到最后一个。  
console.log(str.substring(1,4));
console.log(str.substring(1));
//用法同上,为负数时,就是倒数开始算,一个参数含义是倒数几个。
console.log(str.slice(1,4));
console.log(str.slice(-3));
//字符‘l'首次出现的位置 
console.log(str.indexOf('l'));
//字符‘l'最后一次出现的位置 
console.log(str.lastIndexOf('l'));
//在位置下标3之后,首次出现的位置 
console.log(str.indexOf('l',3));
//用‘,'分割为字符串
console.log(str.split(','));
// 把str中的小写h换成大写H
console.log(str.replace('h','H'));
//讲字符串转化为大写
console.log(str.toUpperCase());

提示:在javascript中字符串本身是固定不变的,上述方法都会返回一个新的字符串值,并不会影响str本身的值

值得注意的是,在ES6中,给字符串增加了很多新的方法,如:

var s = 'Hello world!';
// 返回布尔值,表示参数字符串是否在源字符串中的头部
console.log(s.startsWith('Hello')) // true
//endsWith():返回布尔值,表示参数字符串是否在源字符串的尾部
console.log(s.endsWith('!')) // true
// includes()返回布尔值,表示是否找到了参数字符串
console.log(s.includes('o')) // true

上述的三个方法都支持第二个参数,表示开始搜索的位置

var s = 'Hello world!';
console.log(s.startsWith('world', 6)) // true
console.log(s.endsWith('Hello', 5))// true
console.log(s.includes('Hello', 6)) // false

提示:endsWith的行为与其他两个方法有所不同。它针对前n个字符,而其他两个方法针对从第n个位置直到字符串结束。
repeat方法返回一个新字符串,表示将原字符串重复n次。

console.log('x'.repeat(3)) // "xxx"
console.log('hello'.repeat(2)) // "hellohello"
console.log('na'.repeat(0)) // ""

参数如果是小数,会被取整。

console.log('na'.repeat(2.9)) // "nana"
//如果repeat的参数是负数或者Infinity,会报错。
console.log('na'.repeat(Infinity))
// RangeError
console.log('na'.repeat(-1))
// RangeError

但是,如果参数是0到-1之间的小数,则等同于0,这是因为会先进行取整运算。0到-1之间的小数,取整以后等于-0,repeat视同为0。

console.log('na'.repeat(-0.9)) // ""
//参数NaN等同于0
console.log('na'.repeat(NaN)) // "
//如果repeat的参数是字符串,则会先转换成数字
console.log('na'.repeat('na')) // ""
console.log('na'.repeat('3')) // "nanana"

ES2017 引入了字符串补全长度的功能。如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全

//padStart和padEnd一共接受两个参数,第一个参数用来指定字符串的最小长度,第二个参数是用来补全的字符串。
console.log('x'.padStart(5, 'ab')) // 'ababx'
console.log('x'.padStart(4, 'ab')) // 'abax'
console.log('x'.padEnd(5, 'ab')) // 'xabab'
console.log('x'.padEnd(4, 'ab')) // 'xaba'
//如果原字符串的长度,等于或大于指定的最小长度,则返回原字符串。
console.log('xxx'.padStart(2, 'ab')) // 'xxx'
console.log('xxx'.padEnd(2, 'ab')) // 'xxx'
//如果用来补全的字符串与原字符串,两者的长度之和超过了指定的最小长度,则会截去超出位数的补全字符串。
consoe.log('abc'.padStart(10, '0123456789'))
// '0123456abc'
//如果省略第二个参数,默认使用空格补全长度。
console.log('x'.padStart(4)) // ' x'
console.log('x'.padEnd(4)) // 'x '
//padStart的常见用途是为数值补全指定位数。下面代码生成10位的数值字符串。
console.log('1'.padStart(10, '0') )// "0000000001"
console.log('12'.padStart(10, '0')) // "0000000012"
console.log('123456'.padStart(10, '0')) // "0000123456"
//另一个用途是提示字符串格式。
console.log('12'.padStart(10, 'YYYY-MM-DD')) // "YYYY-MM-12"
console.log('09-12'.padStart(10, 'YYYY-MM-DD'))// "YYYY-09-12"

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
jQuery 性能优化指南(2)
May 21 Javascript
javascript控制frame,iframe的src属性代码
Dec 31 Javascript
Javascript 按位左移运算符使用介绍(
Feb 04 Javascript
JavaScript 实现简单的倒计时弹窗DEMO附图
Mar 05 Javascript
JQuery EasyUI 数字格式化处理示例
May 05 Javascript
浅析JS中对函数function的理解(基础篇)
Oct 14 Javascript
JavaScript中最常用的10种代码简写技巧总结
Jun 28 Javascript
使用rollup打包JS的方法步骤
Dec 05 Javascript
详解Next.js页面渲染的优化方案
Jan 27 Javascript
vue+elementUi 实现密码显示/隐藏+小图标变化功能
Jan 18 Javascript
JS如何实现封装列表右滑动删除收藏按钮
Jul 23 Javascript
H5+css3+js搭建带验证码的登录页面
Oct 11 Javascript
利用Javascript裁剪图片并存储的简单实现
Mar 13 #Javascript
js实现手机发送验证码功能
Mar 13 #Javascript
Javascript封装id、class与元素选择器方法示例
Mar 13 #Javascript
原生js实现吸顶效果
Mar 13 #Javascript
vue2.0嵌套路由实现豆瓣电影分页功能(附demo)
Mar 13 #Javascript
jquery.flot.js简单绘制折线图用法示例
Mar 13 #Javascript
深入理解Node.js中的进程管理
Mar 13 #Javascript
You might like
php实现快速排序的三种方法分享
2014/03/12 PHP
php mysql PDO 查询操作的实例详解
2017/09/23 PHP
目前流行的JavaScript库的介绍及对比
2013/09/29 Javascript
js判断滚动条是否已到页面最底部或顶部实例
2014/11/20 Javascript
JavaScript中Math.SQRT2属性的使用详解
2015/06/14 Javascript
jQuery常用且重要方法汇总
2015/07/13 Javascript
javascript高级编程之函数表达式 递归和闭包函数
2015/11/29 Javascript
浅谈addEventListener和attachEvent的区别
2016/07/14 Javascript
详解Angular.js的$q.defer()服务异步处理
2016/11/06 Javascript
JS中去掉array中重复元素的方法
2017/05/26 Javascript
JS中把函数作为另一函数的参数传递方法(总结)
2017/06/28 Javascript
简单的vuex 的使用案例笔记
2018/04/13 Javascript
浅谈mvvm-simple双向绑定简单实现
2018/04/18 Javascript
nuxt框架中路由鉴权之Koa和Session的用法
2018/05/09 Javascript
微信小程序image图片加载完成监听
2019/08/31 Javascript
vue+elementUI动态生成面包屑导航教程
2019/11/04 Javascript
JavaScript定时器常见用法实例分析
2019/11/15 Javascript
Vue 解决路由过渡动画抖动问题(实例详解)
2020/01/05 Javascript
[11:57]《一刀刀一天》第十七期:TI中国军团加油!
2014/05/26 DOTA
简单谈谈Python中的元祖(Tuple)和字典(Dict)
2017/04/21 Python
python实现稀疏矩阵示例代码
2017/06/09 Python
Windows上使用Python增加或删除权限的方法
2018/04/24 Python
Matplotlib 生成不同大小的subplots实例
2018/05/25 Python
删除DataFrame中值全为NaN或者包含有NaN的列或行方法
2018/11/06 Python
python3爬虫获取html内容及各属性值的方法
2018/12/17 Python
python 实现查找文件并输出满足某一条件的数据项方法
2019/06/12 Python
pytorch forward两个参数实例
2020/01/17 Python
tensorflow 变长序列存储实例
2020/01/20 Python
Python脚本如何在bilibili中查找弹幕发送者
2020/06/04 Python
HTML5 Canvas 起步(1) - 基本概念
2009/05/12 HTML / CSS
CHARLES & KEITH加拿大官网:新加坡时尚品牌
2020/03/26 全球购物
舞蹈专业求职信
2014/06/13 职场文书
研究生简历自我评价范文
2014/09/13 职场文书
正能量励志演讲稿三分钟(范文)
2019/07/11 职场文书
java设计模式--原型模式详解
2021/07/21 Java/Android
Go gorilla securecookie库的安装使用详解
2022/08/14 Golang