javascript中对字符串的操作总结
没听过一句话吗?程序员的世界,不处理字符串就是处理数组。这是群里的一位前辈和我说的,显然这和我之前理解的DOM是javascript的核心的不同的,看了几个面试题的内容,感觉前辈说的话非常的有道理,因此总结下,javascript中对字符串的操作。
String类型
首先字符串类型是基本类型,但是在这里我们所说的是字符串的对象包装类型。因为只有引用类型才会有属性和方法。实际上每读取一个基本类型的同时都会创建一个对应的基本包装类型,从而让我们能够调用一些方法来操作数据。
1.charAt() 和 charCodeAt()
两个方法都接受一个索引参数,charAt()返回对应索引的字符,charCodeAt()返回对应字符的字符编码。
2.concat()
用于将一个或多个字符串拼接起来,返回拼接得到的新字符串。
eg:
var str1 = '111';
var result = str1.concat('abcd','dsas');//结果111abcddsas
3.slice()、substr()、substring()
这三个方法都是对字符串的截取。且都接受一个或两个参数。他们的第一个参数都表示起始位置。
(1) slice()的第二个参数指定需要截取的位置的后面的字符索引。如果没有第二个参数则字符串长度作为结束位置。当传入负值时,会将负值与字符串的长度相加。
var str1 = "hello world"
alert(str1.slice(3));//不传第二个参数时默认为字符串长度结果:lo world
alert(str1.slice(3,7));//lo w
alert(str1.slice(-3));//传入负值与字符串长度相加结果:rld
alert(str1.slice(3,-7));//结果:l
(2) substring()的第二个参数指定需要截取的位置的后面的字符索引。如果没有第二个参数则字符串长度作为结束位置。当传入负值时,会将所有负值转换成0.
var str1 = "hello world"
alert(str1.substring(3));//不传第二个参数时默认为字符串长度结果:lo world
alert(str1.substring(3,7));//lo w
alert(str1.substring(-3));//第一个参数为负值转换为0第二个默认为字符串长度,结果:hello world
alert(str1.substring(3,-7))//结果:hel
(3)substr()的第二个参数时指定的截取长度,如果没有第二个参数则字符串长度作为结束位置。当传入负值时,会将第一个参数加上字符串的长度,而第二个参数转换为0.
var str1 = "hello world"
alert(str1.substr(3));//不传第二个参数时默认为字符串长度结果:lo world
alert(str1.substr(3,7))//结果:lo worl
alert(str1.substr(-3))//结果//rld
alert(str1.substr(3,-7))//结果:""
4.indexOf()、lastIndexOf()
这两个方法都接受两个参数,第一个参数时要确定位置的子字符串,第二个参数可选,是开始搜索的位置。方法,返回该子字符串的位置,如果未找到,则返回-1。indexOf()是从开头开始搜索,而lastIndexOf()则是从末尾向前搜索。
var str1 = "hello world";
alert(str1.indexOf("o"));//
alert(str1.lastIndexOf("0"));//
alert(str1.indexOf("a"))//-1
alert(str1.indexOf("o",6));//
alert(str1.lastIndexOf("o",6));//
5.trim()
trim()用于去除字符串两边的空格。
6.toLowerCase()、toUpperCase()
这两种方法用于转换字符串的大小写。直接看例子:
var str1 = "hello world"
var str2 = "HELLO WORLD"
alert(str1.toUpperCase());//HELLO WORLD
alert(str2.toLowerCase());//hello world
此外还有toLocaleLowerCase(),和toLocaleUpperCase()方法,与这两种方法类似。
7.match()
match()方法类似于正则中的exec(),接受一个参数,参数为正则表达式或者字符串。返回一个数组。数组内容与调用exec()方法一致。
var text = "cat, bat, sat, fat";
var pattern = /.at/; var matches = text.match(pattern);
alert(matches.index); //
alert(matches[0]); //"cat"
alert(pattern.lastIndex); //
8.search()
search()方法与match()方法参数一致,返回第一个匹配项的索引,如果没有匹配到则返回-1,始终从开头向后查找。
var text = "cat, bat, sat, fat";
var pos = text.search(/at/);
alert(pos); //
9.replace()
replace()方法接受两个参数,第一个参数可以是一个正则对象或者一个字符串,第二个参数可以使一个字符串或者一个
函数。如果第一个参数为字符串,则返回由第二个参数替换调用字符串中子字符串的字符串。且只会替换第一个。若想全局替换,则需要使用正则,且要指定全局。
var text = "cat, bat, sat, fat";
var result = text.replace("at", "ond");
alert(result); //"cond, bat, sat, fat" result = text.replace(/at/g, "ond");
alert(result); //"cond, bond, sond, fond"
10.split()
这个方法会根据一个分隔符将一个字符串分割成多个子字符串并将结果放进一个数组。方法也可以接受第二个参数用来指定结果数组的大小。
var colorText = "red,blue,green,yellow";
var colors1 = colorText.split(","); //["red", "blue", "green", "yellow"]
var colors2 = colorText.split(",", 2); //["red", "blue"]
var colors3 = colorText.split(/[^\,]+/); //["", ",", ",", ",", ""]
此外还有formCharCode()方法用于将字符编码转换为字符串。
alert(String.fromCharCode(104, 101, 108, 108, 111)); //"hello"
以上为部分字符串方法。总结于《javascript高级程序设计》
javascript中对字符串的操作总结的更多相关文章
- javaScript中关于字符串的操作函数和方法
1.字符串转换 toString():可以将任何类型的数据都转换为字符串 var num= 19; //19 var myStr = num.toString(); //"19" ...
- JavaScript中常见的数组操作函数及用法
JavaScript中常见的数组操作函数及用法 昨天写了个帖子,汇总了下常见的JavaScript中的字符串操作函数及用法.今天正好有时间,也去把JavaScript中常见的数组操作函数及用法总结一下 ...
- javascript中的字符串对象和数组对象
1.javascript的对象的概念 在javascript中,除了null和undefined以处,其他的数据类型都被定义成了对象 也可以用创建对象的方法定义变量,string,math,array ...
- javascript中的字符串对象
1.javascript的对象的概念 在javascript中,除了null和undefined以处,其他的数据类型都被定义成了对象 也可以用创建对象的方法定义变量,string,math,array ...
- JavaScript如何实现字符串拼接操作
实际应用中,目标字符串的生成可能需要多个数据的拼接. 由于应用频繁,几乎是所有编程语言都必须掌握的操作,当然每种语言具有各自特点. 本文将通过代码实例详细介绍一下JavaScript如何实现字符串拼接 ...
- php大力力 [024节]PHP中的字符串连接操作(2015-08-27)
2015-08-27 php大力力024.PHP中的字符串连接操作 PHP中的字符串连接操作 阅读:次 时间:2012-03-25 PHP字符串的连接的简单实例 时间:2013-12-30 很多 ...
- JavaScript中对数组的操作
原文:JavaScript中对数组的操作 一:数组的使用 1.定义:JavaScript中对数组的定义有两种形式.如: .var arr = [12,3,5,8]; .var arr = new Ar ...
- 如何在 JavaScript 中检查字符串是否包含子字符串?
如何在 JavaScript 中检查字符串是否包含子字符串? // var test4 = _.includes(string, substring); 该方法需要此文件 <script src ...
- [转] JavaScript中的字符串操作
一.概述 字符串在JavaScript中几乎无处不在,在你处理用户的输入数据的时候,在读取或设置DOM对象的属性时,在操作cookie时,当然还有更 多....JavaScript的核心部分提供 ...
随机推荐
- 使用 WPF 创建预加载控件
Introduction At the time when WPF applications do a very long process like getting response from a w ...
- Xamarin.Android 入门实例(2)之实现WCF 寄宿于IIS 的Web服务提供
1.WCF 契约 ICalculator.cs using System.ServiceModel; namespace Contracts { [ServiceContract] public in ...
- Ubuntu下搭建ASP.NET 5
在Ubuntu下搭建ASP.NET 5开发环境 0x00 写在前面的废话 年底这段时间实在太忙了,各种事情都凑在这个时候,没时间去学习自己感兴趣的东西,所以博客也好就没写了.最近工作上有个小功能要 ...
- java学习笔记2015-6-6
类与对象 (概念型 Demo演示) 面向对象 java C++ 包裹 承受 多态 分类 物 面向过程 C 结构体 1.获取用户输入 2.逻辑推断 ...
- Performance Monitor采集性能数据
Performance Monitor采集性能数据 Windows本身为我们提供了很多好用的性能分析工具,大家日常都使用过资源管理器,在里面能即时直观的看到CPU占用率.物理内存使用量等信息.此外新系 ...
- [LeetCode141]Linked List Cycle
题目:Given a linked list, determine if it has a cycle in it. 判断一个链表是否有环 代码: /** * Definition for singl ...
- 同台交换机同样VLAN能够通信,不同VLAN不可通信
一.示意图 二.IP规划 PC0:192.168.0.100 255.255.255.0 PC1:192.168.0.110 255.255.255.0 PC2:192 ...
- IE按F12,开发者工具已经在最低点,那么国家就不会出错
ie浏览器.按F12,开发工具将问世. 没有,试试下面的方法就可以解决: 开开发者工具图标,它会出来缩略图,于缩略图右键点-你可以最大限度地提高.然后选择IE8兼容模式可 版权声明:本文博主原创文章. ...
- codeforces Round #260(div2) D解决报告
D. A Lot of Games time limit per test 1 second memory limit per test 256 megabytes input standard in ...
- 跨域请求jQuery的ajax jsonp使用常见问题解答
前天在项目中写了ajax jsonp的使用,出现了问题:能够成功获得请求结果,但没有运行success方法,直接运行了error方法提示错误--ajax jsonp之前并没实用过.对其的理解为跟普通的 ...