资讯专栏INFORMATION COLUMN

js常见字符串操作方法

hsluoyz / 1176人阅读

摘要:一字符串方法字符串转换将一个值转换成一个字符串有两种方法,一是使用方法,二是使用转型函数。对于字符串型的值也可以使用方法,它会返回该字符串的一个副本。方法可以传递一个参数,表示数值的基数进制。

一、字符串方法

1、字符串转换:
将一个值转换成一个字符串有两种方法,一是使用 toString() 方法,二是使用转型函数 String()
(1)、大多值都有toString()方法,null和undefined是没有的。

(2)、对于字符串型的值也可以使用toString()方法,它会返回该字符串的一个副本。

(3)、toString()方法可以传递一个参数,表示数值的基数(进制)。

 var t = 8;  
 t.toString(2);  //1000 

默认情况下 参数是10。要说明的是对于非数值类型(boolean,string等)设置toString()的参数是无效的

var t ="8";  
t.toString(2);  //8, 返回字符串的副本;
    

(4)、任何值都可以使用String()方法。它的过程是这样的

    首先,如果值有toString()方法,那么则使用该方法(无参数)。

    其次,那就是该值没有toString()方法,那就是 null 返回 "null",undefined返回"undefined";
   

var a=null;  
String(a);    //"null"

2、字符串分割:
字符串分割,将一个字符串按照某种方式分割成字符串数组,使用 split(separator,howmany) 方法,
第一个参数必需,,为字符串或正则表达式,从该参数指定的地方分割字符串;
第二个参数可选,可指定返回的数组的最大长度

var myStr = "I,Love,You,Do,you,love,me";
var substrArray = myStr .split(","); // ["I", "Love", "You", "Do", "you", "love", "me"];
var arrayLimited = myStr .split(",", 3); // ["I", "Love", "You"];

3、获取字符串长度
获取字符串长度,直接使用 str.length 属性

var myStr = "I,Love,You,Do,you,love,me";
var myStrLength = myStr.length; //25

4、查询子字符串
查询子字符串,可以使用 indexOf()lastIndexOf() 方法
(1)indexOf():从字符串的第一个字符位置开始查找,找到后返回对应下标,找不到返回 -1 ;

var myStr = "I,Love,you,Do,you,love,me";
var index = myStr.indexOf("Love"); // 2 ,基于0开始,找不到返回-1,区分大小写

(2)lastIndexOf():从字符串的末尾开始查找,找到最后出现指定字符串的位置后返回对应下标,找不到返回 -1 ;

var myStr = "I,Love,you,Do,you,love,me";
var index = myStr.lastIndexOf("you"); // 14 //区分大小写

5、字符串替换
替换字符串,使用 strObj.replace(regexp/substr,replacement) 方法,
第一个参数必需,规定要匹配的正则对象,
第二个参数必需,规定了替换文本或生成替换文本的函数。

 var myStr = "I,Love,you,Do,you,love,me";
 var replacedStr = myStr.replace(/love/g,"hate");//"I,Love,you,Do,you,hate,me",全局匹配(g)
var myStr = "I,Love,you,Do,you,love,me";
var replacedStr = myStr.replace(/love/g,"hate");//"I,hate,you,Do,you,hate,me",忽略大小写(i)

6、查找给定位置的字符或其字符编码值
想要查找给定位置的字符,你可以使用如下函数:

var myStr = "I,love,you,Do,you,love,me";
var theChar = myStr.charAt(8);// "o",同样从0开始
   

同样,它的一个兄弟函数就是查找对应位置的字符编码值,如:

var myStr = "I,love,you,Do,you,love,me";
var theChar = myStr.charCodeAt(8); //111
   

7、字符串拼接
字符串连接操作可以简单到用一个加法运算符搞定,如:

var str1 = "I,love,you!";
var str2 = "Do,you,love,me?";
var str = str1 + str2 + "Yes!";//"I,love,you!Do,you,love,me?Yes!"
   

使用js自带 strObj1.concat(strObj2) 方法也可实现

var str1 = "I,love,you!";
var str2 = "Do,you,love,me?";
var str = str1.concat(str2);//"I,love,you!Do,you,love,me?"
   

8、字符串切割和提取
有三种方法可实现,分别为:
(1)、strObj.slice(satrt,end):第一个参数必需,要提取字符串的起始下标。如果为负数的话,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推,第二个参数可选,与strObj.substring()类似。

 var myStr = "I,love,you,Do,you,love,me";
 var subStr = myStr.slice(1,5);//",lov"
   

(2)、strObj.substring(start,end):第一个参数必需,不能为负数,提取字符串初始位置,第二个参数可选,strObj[end]不提取。

var myStr = "I,love,you,Do,you,love,me";
var subStr = myStr.substring(1,5); //",lov";
   

(3)、strObj,substr(start,length):第一个参数必需,提取字符串的初始位置,第二个参数可选,表示提取字符串长度,不写的话默认提取到字符串末尾。

var myStr = "I,love,you,Do,you,love,me";
var subStr = myStr.substr(1,5); //",love"
   

9、字符串大小写转换
常用的转换为大写或者小写字符串函数,如下:

var myStr = "I,love,you,Do,you,love,me";
var lowCaseStr = myStr.toLowerCase();//"i,love,you,do,you,love,me";
var upCaseStr = myStr.toUpperCase();//"I,LOVE,YOU,DO,YOU,LOVE,ME"
  

10、字符串匹配

字符串匹配可能需要你对正则表达式有一定的了解,先来看看match()函数:
   var myStr = "I,love,you,Do,you,love,me";
   var pattern = /love/;
   var result = myStr.match(pattern);//["love"]
   console.log(result .index);//2
   console.log(result.input );//I,love,you,Do,you,love,me
如你所见,match()函数在字符串上调用,并且接受一个正则的参数。来看看第二个例子,使用exec()函数:
    var myStr = "I,love,you,Do,you,love,me";
    var pattern = /love/;
    var result = pattern .exec(myStr);//["love"]
    console.log(result .index);//2
    console.log(result.input );//I,love,you,Do,you,love,me
简单吧,仅仅是把正则和字符串换了个位置,即exec()函数是在正则上调用,传递字符串的参数。对于上面两个
方法,匹配的结果都是返回第一个匹配成功的字符串,如果匹配失败则返回null.

再来看一个类似的方法search(),如:
var myStr = "I,love,you,Do,you,love,me";
var pattern = /love/;
var result = myStr.search(pattern);//2
仅返回查到的匹配的下标,如果匹配失败则返回-1.      

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/83455.html

相关文章

  • [总结贴] 十个 JavaScript 中易犯的小错误

    摘要:但是在中,的生命还会继续。这其中最典型的问题便是批量增加元素。这时,如果构造函数被调用时没有参数,则会自动设置为。因为从系统的角度来说,当你用字符串的时候,它会被传进构造函数,并且重新调用另一个函数。 序言 在今天,JavaScript已经成为了网页编辑的核心。尤其是过去的几年,互联网见证了在SPA开发、图形处理、交互等方面大量JS库的出现。 如果初次打交道,很多人会觉得js很简单...

    icattlecoder 评论0 收藏0
  • 给初学者:JavaScript 的常见注意点

    摘要:上篇说了一些中数组操作的常见误区,这次来总结一下初学者常见的其他易错点。小心它的精度问题。这就是存在的唯一意义。而包括在内所有浏览器所以对于日期字符串,请注意字符串中是使用横杠还是斜杠。考虑到负数时区的问题,不推荐将小时数清零的做法。 上篇说了一些 JS 中数组操作的常见误区,这次来总结一下初学者常见的其他易错点。 写立即执行函数时前置 void 立即执行函数(IIFE)在 JS 非常...

    blair 评论0 收藏0
  • 慕课网js面试题学习笔记(ES6 标准) ——实时更新

    摘要:而第一种方法只能判断引用类型,不能判断值类型,因为值类型没有对应的构造函数描述一个对象的过程生成一个新的空对象指向这个新对象执行构造函数中的代码,即对赋值将新对象的属性指向构造函数的属性返回,即得到新对象。 最近在在看前端面试教程,这篇文章里大部分是看视频的过程中自己遇到的不清楚的知识点,内容很简单,只是起到一个梳理作用。有些地方也根据自己的理解在作者的基础上加了点东西,如有错误,欢迎...

    netmou 评论0 收藏0
  • 常见的web安全问题及解决方案

    摘要:常见的六大安全问题有点击劫持跳转漏洞注入命令注入攻击,跨站脚本攻击,因为缩写和重叠,所以只能叫。这是预防攻击窃取用户最有效的防御手段。命令注入攻击命令注入攻击指通过应用,执行非法的操作系统命令达到攻击的目的。 随着互联网的快速发展和前端的多样性,浏览器已经成一种十分重要的上网工具,也是要有越来越多的交互操作需要浏览器来支持,所以针对浏览器的安全问题也越来越重要。浏览器安全其实是受同源策...

    geekzhou 评论0 收藏0
  • js常见对象及方法

    摘要:构造函数是是引用类型的一个新实例一创建实例的方法第一种是使用操作符后跟构造函数使用对象字面量表示法与相同二访问对象属性从功能上看,这两种访问对象属性的方法没有任何区别。对数组中的每一项运行给定函数,如果该函数对任一项返回,则返回。 对象是某个特定引用类型的实例。新对象是使用new操作符后跟一个构造函数来创建的。 var person = new Object(); 构造函数是...

    dendoink 评论0 收藏0

发表评论

0条评论

hsluoyz

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<