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


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 相关文章推荐
基于jquery的自定义鼠标提示效果 jquery.toolTip
Nov 14 Javascript
基于JQuery模仿苹果桌面的Dock效果(初级版)
Oct 15 Javascript
js读写cookie实现一个底部广告浮层效果的两种方法
Dec 29 Javascript
javascript将浮点数转换成整数的三个方法
Jun 23 Javascript
Javascript基础教程之比较null和undefined值
May 16 Javascript
Node.js数据库操作之查询MySQL数据库(二)
Mar 04 Javascript
Bootstrap fileinput文件上传预览插件使用详解
May 16 Javascript
vue webuploader 文件上传组件开发
Sep 23 Javascript
bootstrap table实现点击翻页功能 可记录上下页选中的行
Sep 28 Javascript
浅谈Vue.js路由管理器 Vue Router
Aug 16 Javascript
jquery将json转为数据字典的实例代码
Oct 11 jQuery
微信小程序自定义弹出模态框禁止底部滚动功能
Mar 09 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设计模式中的工厂模式
2008/06/12 PHP
PHP list() 将数组中的值赋给变量的简单实例
2016/06/13 PHP
PHP递归遍历指定文件夹内的文件实现方法
2016/11/15 PHP
ThinkPHP框架实现的邮箱激活功能示例
2018/06/15 PHP
PHP7内核CGI与FastCGI详解
2019/04/14 PHP
PHP 自动加载类原理与用法实例分析
2020/04/14 PHP
JQuery里面的几种选择器 查找满足条件的元素$(&quot;#控件ID&quot;)
2011/08/23 Javascript
select标记美化--JS式插件、后期加载
2013/04/01 Javascript
js操作iframe的一些方法介绍
2013/06/25 Javascript
jquery each的几种常用的使用方法示例
2014/01/21 Javascript
JS实现复制功能
2017/03/01 Javascript
AngularJS实现自定义指令与控制器数据交互的方法示例
2017/06/19 Javascript
vue-music关于Player播放器组件详解
2017/11/28 Javascript
bootstrap 点击空白处popover弹出框隐藏实例
2018/01/24 Javascript
浅谈VUE监听窗口变化事件的问题
2018/02/24 Javascript
原生js实现form表单序列化的方法
2018/08/02 Javascript
Vue中错误图片的处理的实现代码
2019/11/07 Javascript
js blob类型url的视频下载问题的解决
2019/11/29 Javascript
解决Vue使用bus总线时,第一次路由跳转时数据没成功传递问题
2020/07/28 Javascript
[01:19:46]DOTA2-DPC中国联赛 正赛 SAG vs DLG BO3 第一场 2月28日
2021/03/11 DOTA
Python实现快速傅里叶变换的方法(FFT)
2018/07/21 Python
python从list列表中选出一个数和其对应的坐标方法
2019/07/20 Python
Python爬取破解无线网络wifi密码过程解析
2019/09/17 Python
wxPython:python首选的GUI库实例分享
2019/10/05 Python
python实现PDF中表格转化为Excel的方法
2020/06/16 Python
pytorch 计算ConvTranspose1d输出特征大小方式
2020/06/23 Python
基于python实现简单网页服务器代码实例
2020/09/14 Python
美国在线宠物商店:Chewy
2019/01/12 全球购物
预备党员党校学习自我评价分享
2013/11/12 职场文书
小学生优秀评语大全
2014/04/22 职场文书
2015年春节标语口号
2014/12/09 职场文书
2015年教师党员承诺书
2015/04/27 职场文书
企业计划生育责任书
2015/05/09 职场文书
安全生产感想
2015/08/07 职场文书
初级职称评定工作总结
2015/08/13 职场文书
Vite + React从零开始搭建一个开源组件库
2022/06/25 Javascript