JS 字符串操作总结

【MDN】https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String

【参考】https://www.cnblogs.com/guoyeqiang/p/8178336.html

 

字符串转换 


 

1、toString()

 

var age = 11;
var ageAsString = age.toString(); //字符串“11”
var found = true;
var foundAsString = found.toString();//字符串“true”

 

 

 

默认情况下,toString()方法返回的是10进制格式返回数值的字符串表示。但是也可以输出二进制、八进制、十六进制。

 

var num=10;
num.toString();//"10"
num.toString(2);//"1010"
num.toString(8);//"12"
num.toString(10);//"10"
num.toString(16);//a

 

 

 

一般的值都有这个方法,但是null和undefined是没有这个方法的,在不知道要转换的值是不是null 或者undefined的情况下,可以使用转型函数String()

 

2、String()

如果值有toString()方法的话,就会调用toString方法。如果是null,返回"null",如果是undefined的话,返回"undefined"

String(true);//"true"
String(null);//"null"
String(undefined);//undefined
String(10);//"10"

 

 

3、+字符串拼接

var num=24;
var mystr="" + num;    //"24"

 

 

字符方法


 

1、charAt()

 

2、charCodeAt()

 

3、codePointAt() ES6

能正确返回字非BMP字符集上的字符长度

 

4、fromCodePoint() ES6

 

5、normalize() ES6

 

 

字符串连接


 

1、concat()   [String.prototype.concat()]=>MDN

  方法将一个或多个字符串与原字符串连接合并,形成一个新的字符串并返回,并不影响原本的字符串。

  str.concat(string2string3[, ..., stringN])

var hello = "Hello, ";
console.log(hello.concat("Kevin", " have a nice day.")); /* Hello, Kevin have a nice day. */
 

2、+ 操作符拼接

强烈推荐使用加法操作符,因为加法操作符的性能更好

var mystr1="Hello";
var mystr2="world!";
var newStr=mystr1+" "+mystr2;    //Hello world!

 

 

 

字符串分隔

 


 

1、splite()  [String.prototype.splite]=>MDN

方法使用指定的分隔符字符串将一个String对象分割成字符串数组,以将字符串分隔为子字符串,以确定每个拆分的位置。 

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

 

 

截取字符串中的子字符串


 

1、slice()  [String.prototype.slice]=>MDN

方法提取一个字符串的一部分,并返回一新的字符串。

str.slice(beginSlice[, endSlice])

slice() 提取的新字符串包括beginSlice不包括 endSlice

2、substr() [String.prototype.substr]=>MDN

方法返回一个字符串中从指定位置开始到指定字符数的字符。

str.substr(start[, length])


3、substring() [String.prototype.substring]=>MDN

方法返回一个字符串在开始索引到结束索引(不包括)之间的一个子集, 或从开始索引直到字符串的末尾的一个子集。

str.substring(indexStart[, indexEnd])

 

关于slice和substring之间的区别:

stringObj.slice(start, [end])
如果 start 为负,将它作为 length + start处理,此处 length 为数组的长度。如果 end 为负,就将它作为 length + end 处理,此处 length 为数组的长度。如果省略 end ,那么 slice 方法将一直复制到 arrayObj 的结尾。如果 end 出现在 start 之前,不复制任何元素到新数组中。

strVariable.substring(start, end)
如果 start 或 end 为 NaN 或者负数,那么将其替换为0。
子字符串的长度等于 start 和 end 之差的绝对值。例如,在 strvar.substring(0, 3) 和 strvar.substring(3, 0) 返回的子字符串的的长度是 3。

 

 

字符串位置方法

 


 

1、indexOf() [String.prototype.indexOf]=>MDN

方法返回调用  String 对象中第一次出现的指定值的索引,开始在 fromIndex进行搜索。如果未找到该值,则返回-1。

str.indexOf(searchValue[, fromIndex])


2、lastIndexOf() [String.prototype.lastIndexOf]=>MDN

方法返回指定值在调用该方法的字符串中最后出现的位置,如果没找到则返回 -1。从该字符串的后面向前查找,从 fromIndex 处开始。

 

 

字符串大小写转换


 

1、toLocaleUpperCase [String.prototype.toLocaleUpperCase]=>MDN

使用本地化(locale-specific)的大小写映射规则将输入的字符串转化成大写形式并返回结果字符串。

str.toUpperCase()

 

2、toLocaleLowerCase [String.prototype.toLocaleLowerCase]=>MDN

方法根据任何特定于语言环境的案例映射,返回调用字符串值转换为小写的值。

str.toLowerCase()

 

3、toLowerCase [String.prototype.toLowerCase]=>MDN

str.toLowerCase()

 

4、toUpperCase [String.prototype.toUpperCase]=>MDN

str.toUpperCase()


字符串的匹配模式

 


 

1、match() [String.prototype.match]=>MDN

当一个字符串与一个正则表达式匹配时, match()方法检索匹配项。

str.match(regexp);

 

2、search()  [String.prototype.search]=>MDN

方法执行正则表达式和 String对象之间的一个搜索匹配。

str.search(regexp)

 

字符串替换

 


 

1、replace() [String.prototype.replace]=>MDN

方法返回一个由替换值替换一些或所有匹配的模式后的新字符串。模式可以是一个字符串或者一个正则表达式, 替换值可以是一个字符串或者一个每次匹配都要调用的函数。

str.replace(regexp|substrnewSubStr|function)

 

 

 字符串去除空格


 

1、trim() [String.prototype.trim]=>MDN

方法会从一个字符串的两端删除空白字符。在这个上下文中的空白字符是所有的空白字符 (space, tab, no-break space 等) 以及所有行终止符字符(如 LF,CR)。trim() 方法并不影响原字符串本身,它返回的是一个新的字符串。

 

str.trim()

 

转载于:https://www.cnblogs.com/linququ/p/9152996.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/366851.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

4 张动图解释为什么(什么时候)使用 Redux

dev-reading/fe 是一个阅读、导读、速读的 repo,不要依赖于 dev-reading/fe 学习知识。本 repo 只是一个快速了解文章内容的工具,并不提供全文解读和翻译。你可以通过本平台快速了解文章里面的内容,找到感兴趣的文章,然后去阅读全…

您正在使用什么垃圾收集器?

我们的研究实验室正全速前进。 随着最近的资金注入 ,我们只能保证我们不断创新的步伐只会加快。 我们进行的部分研究与GC优化有关。 在处理这个有趣领域中的问题时,我们认为可以分享一些有关GC算法使用的见解。 为此,我们对使用特定GC算法的…

基于混沌的图像置乱加密算法及matlab的实现,基于混沌的图像置乱加密算法及MATLAB的实现...

基于混沌的图像置乱加密算法及MATLAB的实现提出了一种基于混沌映射的图像置乱加密算法。借助MATLAB6.5软(本文共3页)阅读全文>>数字水印(Digital Watermark)技术属于国际上新兴的研究领域,其主要目的是为了实现数字作品的版权保护,将与作品内容相关或不相关的一些标示信息…

poj1857 To Europe! To Europe!

思路&#xff1a; 一维dp。 实现&#xff1a; 1 #include <cstdio>2 #include <iostream>3 using namespace std;4 const int INF 0x3f3f3f3f;5 int w[1005], v[1005], sum[1005];6 double dp[1005];7 int main()8 {9 int b, l, n; 10 while (cin >>…

前端布局推进剂 - 间距规范化

我是一个爱折腾设计的前端&#xff0c;一直都在标榜自己的页面还原是多么的牛 X 。怎么做到页面还原&#xff1f;我有一个最笨但是有效的方法&#xff0c;就是把设计稿直接存成图片&#xff0c;作为背景图然后临摹着设计稿进行开发。我觉得自己太有才了。像素级还原有没有&…

战略模式并不意味着春天!

是的&#xff0c;所以可以说您正在编写一个Spring MVC应用程序&#xff0c;然后您决定&#xff1a;“我想做一些单独的封装算法&#xff0c;这些算法可以互换来执行特定的行为”。 对此的经典回应是“您需要一个战略模式男孩&#xff01;”。 所以&#xff0c;这就是我所做的&…

echarts折线图相关

optionJKDLine {  title: {text: 告警数量趋势图,textStyle:{  //标题样式fontStyle:normal,fontFamily:sans-serif,fontSize:12    }},tooltip: {trigger: axis},legend: {  //图例,默认显示},grid: {  //图表距离left: -3%,right: 5%,bottom: 3%,top:20%,contai…

南邮java实验报告,南邮微机原理实验报告精选.doc

南邮微机原理实验报告精选《微型计算机原理与接口技术》上机实验学 院&#xff1a; 电子科学与工程专 业&#xff1a; 电磁场与无线技术姓 名&#xff1a; 陈秀慧课 程 号&#xff1a; B0300062S学 号&#xff1a;任课老师&#xff1a; 欧晓鸥2016年 3 月 21日实验目的熟悉第四…

Mybatis动态SQL语句使用

在实际开发中&#xff0c;有时候查询条件可能是不确定的&#xff0c;查询条件可能有多条也可能没有&#xff0c;这时候就需要用到动态的sql语句拼接功能。 一、if、where、sql标签的使用 需求&#xff1a;在一些高级查询中&#xff0c;查询条件存在的个数不确定。如&#xff0c…

为什么Vue不能观察到数组length的变化?

官网解释如下 由于 JavaScript 的限制&#xff0c;Vue 不能检测以下变动的数组&#xff1a; 当你利用索引直接设置一个项时&#xff0c;例如&#xff1a;vm.items[indexOfItem] newValue 当你修改数组的长度时&#xff0c;例如&#xff1a;vm.items.length newLength 因为vue…

规则引擎drools的简单使用

规则引擎适用于有复杂多变的规则&#xff0c;如商品满减、积分赠送、考勤规则等 一、引入maven依赖 <dependency><groupId>org.drools</groupId><artifactId>drools-core</artifactId><version>7.13.0.Final</version> </depende…

使用MongoDB进行乐观锁定重试

在我以前的文章中&#xff0c;我谈到了对MongoDB批处理程序采用乐观锁定的好处。 如我之前所写&#xff0c;乐观锁异常是可恢复的异常&#xff0c;只要我们获取最新的Entity&#xff0c;我们就会对其进行更新并保存。 因为我们使用的是MongoDB&#xff0c;所以我们不必担心本地…

cx oracle 配置,cx_Oracle的配置啊。。终于搞出来了

参考。。http://www.blogjava.net/jelver/articles/294583.htmlhttp://shanchao7932297.blog.163.com/blog/static/1363624200710911543428/http://aofengblog.blog.163.com/blog/static/6317021201157111336764/http://www.cnblogs.com/ysisl/archive/2010/12/20/1911870.html…

JavaScript中发布/订阅模式的理解

订阅发布模式的介绍 发布订阅模式&#xff0c;它定义了一种一对多的关系&#xff0c;可以使多个观察者对象对一个主题对象进行监听&#xff0c;当这个主题对象发生改变时&#xff0c;依赖的所有对象都会被通知到。 在生活中我们常常遇到这样一种情况&#xff0c;我们在使用新…

java的list遍历

for(String str : list) {//增强for循环&#xff0c;其内部实质上还是调用了迭代器遍历方式&#xff0c;这种循环方式还有其他限制&#xff0c;不建议使用。System.out.println(str); } for( int i 0 ; i < list.size() ; i) {//普通for循环&#xff0c;内部不锁定&#xf…

Spring Data Solr入门

Spring Data Solr是Spring Data项目的扩展&#xff0c;该项目旨在简化Apache Solr在Spring应用程序中的使用。 请注意&#xff0c;这不是Spring&#xff08;数据&#xff09;或Solr的简介。 我认为您至少对这两种技术都有一些基本的了解。 在下面的文章中&#xff0c;我将展示如…

一个关于fixed抖动的小bug

前言 大家都知道position: fixed用于生成绝对定位的元素&#xff0c;相对于浏览器窗口进行定位。 元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。 突然发现自己之前写的网页有个小bug&#xff1a;在购买页面的…

BBS论坛(十八)

18.首页轮播图实现 &#xff08;1&#xff09;front/css/front_base.css .main-container{width: 990px;margin: 0 auto;overflow: hidden; } .lg-container{width: 730px;float:left; } .sm-container{width: 250px;float:right; } &#xff08;2&#xff09;front_base.html …

eureka-7-多网卡下的ip选择

目前没有需求,后面需要的话&#xff0c;再补充 只是简单使用的话&#xff0c;只需要指定ip即可 eureka.instance.ip-address:127.0.0.1转载于:https://www.cnblogs.com/wenq001/p/9884591.html

Java DB中的Java用户定义类型(UDT)

Java DB是基于Java编程语言和SQL的关系数据库管理系统。 这是Apache软件基金会的开源Derby项目的Oracle版本。 Java SE 7 SDK中包含Java DB。 用户定义类型&#xff08;UDT&#xff09;是Java类&#xff0c;其实例&#xff08;对象&#xff09;存储在数据库表列中。 UDT定义为…