JavaScript字符串方法归纳

推荐博文:

http://blog.csdn.net/liujie19901217/article/details/50829631
http://www.cnblogs.com/l1pe1/p/6197371.html
http://www.cnblogs.com/ranzige/p/4475338.html

前言

无论是Java还是JavaScript或其他的包含字符串这个概念的编程语言,掌握字符串的熟练程度可以从某些方面反映掌握一门语言的熟练程度.

知识点

1 字符串转换 2 字符串分割 3 获取字符串长度 4 字符串位置方法 5 字符串替换 

6 字符方法(查找给定位置的字符或其字符编码值) 7 字符串连接 8 字符串切割和提取 9 字符串大小写转换 

10 字符串匹配 11 字符串比较 12 接收一或多个字符编码,然后转换成一个字符串(fromCharCode()方法)



1 字符串转换

字符串转换功能是字符串中最基本的操作之一,有很多种方式,不过最简单的莫过于方式一.在下面只是列举几种字符串转换方法,还有其他很多方式,再次就不一一列举了.

//方式一:
var num= 7; 
var myStr = "" +num; // "7"

//方式二:
var num= 7; 
var myStr = String(num); // "7"

//方式三:
var num= 19; 
var myStr = num.toString(); // "7"

2 字符串分割

字符串分割函数需要牢记一点,对某一个字符串A进行分割完之后返回分割完之后的字符串B,此时重新输出字符串A,A的值并没有发生任何变化,如果想让A的值等于分割之后的值,则需要将分割之后的字符串的值赋予字符串A.

var myStr = "flying,skying,table,java";
var substrArray = myStr .split(","); // ["flying","skying","table","java"];
var arrayLimited = myStr .split(",", 3); // ["flying","skying","table"];
//其中split()的第二个参数,表示返回的字符串数组的最大长度。

3 获取字符串长度

获取字符串长度函数很简单,但是需要和java或其余的语言求长度的函数形式区分开来,刚开始比较容易混淆.

var myStr = "flying";
console.log(myStr.length);//6

4 字符串位置方法

有两个可以从字符串中查找子字符串的方法:indexOf()和lastIndexOf().这两个方法都是从一个字符串中搜索给定的子字符串,然后返回子字符串的位置(如果没有找到该子字符串,则返回-1)

//第一种用法:
var stringValue = "hello world";
//indexOf()方法从字符串的开头开始向后搜索子字符串
alert(stringValue.indexOf("o"));//4
//lastIndexOf()方法是从字符串的末尾向前搜索子字符串
alert(stringValue.lastIndexOf("o"));//7

//第二种用法
//indexOf()和lastIndexOf()都可以接收可选的第二个参数,表示从字符串中的哪个位置开始搜索.
var stringValue = "hello world";
//indexOf()会从该参数指定的位置向后搜索,忽略该位置之前的所有字符.
alert(stringValue.indexOf("o", 6));//7
//lastIndexOf()会从指定的位置向前搜索,忽略该位置之后的所有字符.
alert(stringValue.lastIndexOf("o", 6))//4

5 字符串替换

replace()方法可以较为简单直接的完成字符串,replace(A, B)方法接收两个参数:第一个参数可以是一个正则表达式对象(RegExp)或者一个字符串(这个字符串不会被转换成正则表达式),第二个参数可以是一个字符串或者一个函数.如果第一个参数是字符串,那么只会替换第一个子字符串.要想替换所有子字符串,唯一的方法就是提供一个正则表达式,而且要指定全局(g)标志.

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"

注意:对A字符串进行replace()函数操作,并不会改变A字符串的值.

6 字符方法(查找给定位置的字符或其字符编码值)

两个用于访问字符串中特定字符的方法是:charAt()和charCodeAt().这两个方法都接收一个参数,即基于0的字符串位置.其中charAt()方法以单字符串的形式返回给定位置的那个字符.
如果你想得到的不是字符而是字符编码,那么就要使用charCodeAt()了.

var stringValue = "hello world";

alert(stringValue.charAt(1));//1

alert(stringValue.charCodeAt(1));//"101"

7 字符串连接

字符串操作中有专门用来字符串拼接的函数concat(),但是这个方法很鸡肋,在做字符串拼接操作的时候,完全没必要用这个函数.直接用 + “”,这种形式就可以.

//方式一
var stringValue = "hello ";
var result = stringValue + "world";
alert(result);//"hello world" 

//方式二
var stringValue = "hello ";
var result = stringValue.concat("world");
alert(result);//"hello world"
alert(stringValue);//"hello "

8 字符串切割和提取

有三种方式可以从字符串中完成所谓的抽取和切割行为的方法.但是在这里只是做简单的介绍这三个方法,这三个方法所能做的事情,远远不止下面所展示的

//方式一,使用slice():
var myStr = "I,love,you,Do,you,love,me";
var subStr = myStr.slice(1,5);//",lov"

//方式二,使用substring():
var myStr = "I,love,you,Do,you,love,me";
var subStr = myStr.substring(1,5); //",lov"

//方式三,使用substr():
var myStr = "I,love,you,Do,you,love,me";
var subStr = myStr.substr(1,5); //",love"
与方式一和方式二不同的是,substr()第二个参数代表截取的字符串最大长度,如上结果所示。

9 字符串大小写转换

字符串大小写转换有关的方法,有四个,分两组,不过最常用的还是toLowerCase()和toUpperCase()方法.另外两个在特定的情况下可以用到,分别是toLocalLowerCase()和toLocalUpperCase()两个方法

var myStr = "hello world";
var lowCaseStr = myStr.toLowerCase();//"hello world"
var lowLocalCaseStr = myStr.toLocalLowerCase();//"hello world"
var upCaseStr = myStr.toUpperCase();//"HELLO WORLD"
var uoLocalCaseStr = myStr.toLocalUpperCase();//"HELLO WORLD"

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.

11 字符串比较

关于字符串比较首先需要了解字符串比较的原理:
(1)如果字符串在字母表中应该排在字符串参数之前,则返回一个负数(大多数情况下是-1,具体的值要视实现而定);
(2)如果字符串等于字符串参数,则返回0;
(3)如果字符串在字母表中应该排在字符串参数之后,则返回一个正数(大多数情况下是1,具体的值同样是视实现而定);

var myStr = "chicken";
var myStrTwo = "egg";
var first = myStr.localeCompare(myStrTwo); // -1
first = myStr.localeCompare("chicken"); // 0
first = myStr.localeCompare("apple"); // 1

12 接收一或多个字符编码,然后转换成一个字符串

fromCharCode()任务是接收一个或多个字符编码,然后将他们转换成一个字符.从本质上来看,这个方法与实例方法charCodeAt()执行的是相反的操作.

alert(String.fromCharCode(104, 101, 108, 108, 111)); //"hello"
//上述传递的是hello的字符编码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值