最常见和最有用的字符串相关的方法详解


Posted in Javascript onFebruary 06, 2017

转换字符串

你可以转换一个数字,布尔值,或一个字符串的对象:

var myNumber = 24; // 24
var myString = myNumber.toString(); // "24"
var myNumber = 24; // 24
var myString = String(myNumber); // "24"

将字符串分割成多个子字符串

为了区分一个字符串转换为一个子字符串数组,你可以使用的split()方法:

var myString = "coming,apart,at,the,commas";
 var substringArray = myString.split(","); // ["coming", "apart", "at", "the", "commas"]
 var arrayLimited = myString.split(",", 3); // ["coming", "apart", "at"]

最后一行的第二个参数限制了数组参数所指定的项目的数量。

获取一个字符串的长度

要找出多少个字符长的字符串的length属性:

var myString = "You're quite a character.";
 var stringLength = myString.length; // 25

在字符串中找到一个子串

这样做的方法有两种。

使用indexOf():

var stringOne = "Johnny Waldo Harrison Waldo";
 var wheresWaldo = stringOne.indexOf("Waldo"); // 7

indexOf()方法从字符串的开头开始搜索的子串(通过)第一个参数,并返回第一次出现子字符串的开始位置。

使用lastIndexOf() :

var stringOne = "Johnny Waldo Harrison Waldo";
 var wheresWaldo = stringOne.lastIndexOf("Waldo"); // 22

lastIndexOf()方法是完全一样的,只不过它返回传递的子字符串中最后一次出现的起始位置。

在这两种方法中,如果没有找到子字符串,则返回值-1,并允许一个可选的第二个参数表示您要开始搜索的字符在字符串中的位置

替换掉一个子串

要更换一个新的字符串的字符串的一部分或全部,你可以使用replace():

var slugger = "Josh Hamilton";
 var betterSlugger = slugger.replace("h Hamilton", "e Bautista");
 console.log(betterSlugger); // "Jose Bautista"

第一个参数是你要替换的子字符串,第二个参数是新的子串。这只会替换匹配的子字符串的第一个实例。

要更换匹配的子字符串的所有实例,使用正则表达式的全局标志:

var myString = "She sells automotive shells on the automotive shore";
 var newString = myString.replace(/automotive/g, "sea");
 console.log(newString); // "She sells sea shells on the sea shore"

第二个参数可以包括特殊的替换模式,或可以是一个函数。

在给定的位置,找到相应的字符

要查找的字符是在指定的位置,你可以使用charAt()方法:

var myString = "Birds of a Feather";
var whatsAtSeven = myString.charAt(7); // "f"

往往是在JavaScript的情况下,引用该字符串中的第一个位置为“0”,而不是“1”。

或者,您也可以使用charCodeAt() ,它给你,而不是字符本身的字符代码:

var myString = "Birds of a Feather";
 var whatsAtSeven = myString.charCodeAt(7); // "102"
 var whatsAtEleven = myString.charCodeAt(11); // "70"

请注意,大写字母“F”的位(11)的字符代码与小写字母“f”的位(7)从字符码不同。

连接多个字符串

在大多数情况下,当您连接字符串时,你会使用加法运算符(+)。但你也可以选择使用CONCAT()方法:

var stringOne = "Knibb High football ";
 var stringTwo = stringOne.concat("rules."); // "Knibb High football rules"

您还可以通过将多个字符串,将被一个个的追加起来(在它们出现的顺序):

var stringOne = "Knibb ";
var stringTwo = "High ";
var stringThree = "football ";
var stringFour = "rules.";
var finalString = stringOne.concat(stringTwo, stringThree, stringFour);
console.log(finalString); // "Knibb high football rules."

提取字符串(组成新字符串)

有三种不同的方法来创建一个新的字符串值:

使用slice()方法:

var stringOne = "abcdefghijklmnopqrstuvwxyz";
 var stringTwo = stringOne.slice(5, 10); // "fghij"

使用substring()方法:

var stringOne = "abcdefghijklmnopqrstuvwxyz";
var stringTwo = stringOne.substring(5, 10); // "fghij"

对于这两个slice()和substring()方法的第一个参数是你想要的开始的子串,第二个参数(这是可选的)后的字符串中的字符结束的字串。因此,在上面的例子中,参数“5,10”,是指,字符5到9,以创建一个新的字符串。

使用SUBSTR()

var stringOne = "abcdefghijklmnopqrstuvwxyz";
var stringTwo = stringOne.substr(5, 10); // "fghijklmno"

SUBSTR() ,第一个参数代表开始新的字符串的字符,第二个参数是可选的。但这个时候,第二个参数表示的字符的总数应包括的开始的字符“5”的位置。

一个字符串转换为大写或小写

有四种方法做大小写转换。有两个字符串转换为全部大写:

var stringOne = "Speak up, I can't hear you.";
 var stringTwo = stringOne.toLocaleUpperCase(); // "SPEAK UP, I CAN'T HEAR YOU"
 var stringThree = stringOne.toUpperCase(); // "SPEAK UP, I CAN'T HEAR YOU"

将字符串转换为小写:

var stringOne = "YOU DON'T HAVE TO YELL";
 var stringTwo = stringOne.toLocaleLowerCase(); // "you don't have to yell"
 var stringThree = stringOne.toLowerCase(); // "you don't have to yell"

模式匹配

在一个字符串匹配的模式,可以使用两种方法,其基本的工作方式相同。

一个字符串match()方法被调用,并通过正则表达式:

var myString = "How much wood could a wood chuck chuck";
var myPattern = /.ood/;
var myResult = myString.match(myPattern); // ["wood"]
var patternLocation = myResult.index; // 9
var originalString = myResult.input // "How much wood could a wood chuck chuck"

exec()方法被调用的一个正则表达式对象,并通过字符串:

var myString = "How much wood could a wood chuck chuck";
var myPattern = /.huck/;
var myResult = myPattern.exec(myString); // ["chuck"]
var patternLocation = myResult.index; // 27
var originalString = myResult.input // "How much wood could a wood chuck chuck"

对于这两种方法,只在第一个匹配发生被返回。如果没有找到匹配,将返回空值。

也可以使用search()方法,它接受一个正则表达式作为唯一的参数,并返回模式第一次出现的位置:

var myString = "Assume";
 var patternLocation = myString.search(/ume/); // 3

如果没有找到匹配,则该方法返回“-1”。

比较两个字符串的排序顺序

您可以比较两个字符串,看看哪一个字母先靠前使用localeCompare,,有三个可能的返回值:

var myString = "chicken";
var myStringTwo = "egg";
var whichCameFirst = myString.localeCompare(myStringTwo); // -1 (except Chrome, which returns -2)
whichCameFirst = myString.localeCompare("chicken"); // 0
whichCameFirst = myString.localeCompare("apple"); // 1 (Chrome returns 2)
stringObject.localeCompare(target)//公式

如上图所示,如果 stringObject 小于 target,则 localeCompare() 返回小于 0 的数。如果 stringObject 大于 target,则该方法返回大于 0 的数。如果两个字符串相等,或根据本地排序规则没有区别,该方法返回 0。

由于浏览器可以返回任何负数或正数之前和之后的结果最好使用 if ( result < 0 ) ,而不是if ( result === -1 ),后者将无法在Chrome浏览器中运行。

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

Javascript 相关文章推荐
JavaScript Event学习补遗 addEventSimple
Feb 11 Javascript
JavaScript encodeURI 和encodeURIComponent
Dec 04 Javascript
JavaScript的Backbone.js框架的一些使用建议整理
Feb 14 Javascript
JS中input表单隐藏域及其使用方法
Feb 13 Javascript
bootstrap折叠调用collapse()后data-parent不生效的快速解决办法
Feb 23 Javascript
jquery网页加载进度条的实现
Jun 01 jQuery
通过封装scroll.js 获取滚动条的值
Jul 13 Javascript
vue移动端html5页面根据屏幕适配的四种解决方法
Oct 19 Javascript
小程序实现上下移动切换位置
Sep 23 Javascript
JavaScript字符串处理常见操作方法小结
Nov 15 Javascript
如何在postman中添加cookie信息步骤解析
Jun 30 Javascript
一文读懂vue动态属性数据绑定(v-bind指令)
Jul 20 Javascript
jquery uploadify隐藏上传进度的实现方法
Feb 06 #Javascript
Javascript中的prototype与继承
Feb 06 #Javascript
canvas实现粒子时钟效果
Feb 06 #Javascript
javascript笔记之匿名函数和闭包
Feb 06 #Javascript
如何用JS/HTML将时间戳转换为“xx天前”的形式
Feb 06 #Javascript
D3.js中强制异步文件读取同步的几种方法
Feb 06 #Javascript
浅谈Javascript事件对象
Feb 05 #Javascript
You might like
在线竞拍系统的PHP实现框架(二)
2006/10/09 PHP
PHP数据缓存技术
2007/02/14 PHP
完整删除ecshop中获取店铺信息的API
2014/12/24 PHP
非常经典的PHP文件上传类分享
2016/05/15 PHP
PHP中的浅复制与深复制的实例详解
2017/10/26 PHP
学习YUI.Ext 第六天--关于树TreePanel(Part 1)
2007/03/10 Javascript
javascript结合Canvas 实现简易的圆形时钟
2015/03/11 Javascript
javascript实现网页子页面遍历回调的方法(涉及 window.frames、递归函数、函数上下文)
2015/07/27 Javascript
jQuery+css实现非常漂亮的水平导航菜单效果
2016/07/27 Javascript
浅谈jquery.form.js的ajaxSubmit和ajaxForm的使用
2016/09/09 Javascript
微信小程序  Mustache语法详细介绍
2016/10/27 Javascript
拖动时防止选中
2017/02/03 Javascript
javaScript canvas实现(画笔大小 颜色 橡皮的实例)
2017/11/28 Javascript
浅谈Node.js爬虫之网页请求模块
2018/01/11 Javascript
Vue 去除路径中的#号
2018/04/19 Javascript
JavaScript时间日期操作实例小结【5个示例】
2018/12/22 Javascript
Nodejs监控事件循环异常示例详解
2019/09/22 NodeJs
vue.js实现三级菜单效果
2019/10/19 Javascript
详解Vue之事件处理
2020/07/10 Javascript
python清除指定目录内所有文件中script的方法
2015/06/30 Python
Python 私有函数的实例详解
2017/09/11 Python
Python基于高斯消元法计算线性方程组示例
2018/01/17 Python
python中cPickle类使用方法详解
2018/08/27 Python
利用python numpy+matplotlib绘制股票k线图的方法
2019/06/26 Python
Django 实现admin后台显示图片缩略图的例子
2019/07/28 Python
使用python实现画AR模型时序图
2019/11/20 Python
Python astype(np.float)函数使用方法解析
2020/06/08 Python
Python爬取股票信息,并可视化数据的示例
2020/09/26 Python
世界上最伟大的马产品:Equiderma
2020/01/07 全球购物
创业计划书的内容步骤和要领
2014/01/04 职场文书
2016道德模范先进事迹材料
2016/02/26 职场文书
党员公开承诺书2016
2016/03/24 职场文书
MySQL sql_mode修改不生效的原因及解决
2021/05/07 MySQL
JavaScript原始值与包装对象的详细介绍
2021/05/11 Javascript
Springboot集成阿里云OSS上传文件系统教程
2021/06/28 Java/Android
Python jiaba库的使用详解
2021/11/23 Python