HTML 学习笔记 JavaScript (String)

String对象用于存储字符串的数据。这里我们做了JavaScript的String字符串对象常用操作总结。

创建String对象的方式

声明:String 对象的方法也可以在所有基本字符串值中访问到

调用构造函数String():

var str = new String();
str = "heihei";
var str1 = new String("haha");
alert(str +str1);

String访问及查找的方式

1.访问(通过索引)

1>charAt()或[]

1个参数,参数为字符位置,返回字符

var newStr = "houhouhahei";
console.log(newStr[0]);//h
console.log(newStr.charAt(2));//u

2>charCodeAt()

1个参数,参数为字符串位置,返回字符编码

var newStr = "houhouhahei";
alert(newStr.charCodeAt(0));//104

2.查找位置

1>indexOf()

第一个参数为检索的字符,第二个参数为开始检索的位置 ,返回索引字符的索引值,如果没有找到则返回-1

如果第二个参数省略,则返回检索字符在字符串中第一次出现的索引。

var indexStr = "hello world";
alert(indexStr.indexOf("l"));//2
alert(indexStr.indexOf("l",6));// 9从第六个字符开始检索l 返回第一个l的索引值
alert(indexStr.indexOf("h",6));//-1 从第六个开始检索h 找不到返回-1

2>lastIndexOf()

与indexOf()的区别在于,lastIndexOf()是从字符串的末尾向前搜索子字符串。


 

字符方法

1.扩展字符串

1> concat()

接受任意数量参数,用于将一个或者多个字符串拼接起来 返回拼接得到的新的字符串副本。

var str = new String("Hello");
var result = str.concat("World");
console.log(result);//HelloWorld

var str1 = "tian ";
var str2 = "lian ";
var str3 = "feng";
var result1 = str1.concat(str2,str3);
alert(result1);//tian lian feng

2> 使用"+"号拼接字符串

var str1 = "tian ";
var str2 = "lian ";
var str3 = "feng";
var result1 = str1 + str2 + str3;
alert(result1);//tian lian feng

相比较这两个方法 推荐使用第二种 方便快捷效率高。


 

2.获取子字符串

slice(),subStr(),substring(),这三个方法都会返回被操作字符串的子字符串副本 而且也都接受1或者2个参数,前闭后开

1>slice() 提取字符串的某个部分,并返回被提取的新的字符串

语法 stringObject.slice(start,end) 如果参数是负数 则字符串的最后一个字符的index为-1 从后面找起。

var nameStr = "tianxiaopang";
var subName = nameStr.slice(3);
var subname1 = nameStr.slice(4,9);
console.log(subName);//nxiaopang
console.log(subname1);//xiaop //可以看出来是前闭后开区间

var str = 'hello';
str.slice(0,2);//"he",第一个参数指定字符串开始的位置,第二个参数表示字符串到哪里结束
str.slice(-3);//"llo",o代表-1,依次倒数,-3代表倒数第三个的l
str.slice(-2,-1);//"l",同理,-2代表倒数第二个l,-1代表倒数第一的o

2> substring() 不推荐使用 建议使用slice()代替

var demoStr = "Hello";
console.log(demoStr.substring(0,2));//"he"
console.log(demoStr.substring(-3));//"Hello" substring()会把所有的负值参数转换为0
console.log(demoStr.substring(-3,-1));//"" 同上

3>substr() 不推荐使用 建议使用slice()代替

var demoStr = "Hello";
console.log(demoStr.substr(0,2));//he
console.log(demoStr.substr(-3));//llo 同slice()方法
console.log(demoStr.substr(-3,-1));//"" substr()会将负的第二个参数变为0

3 将字符串转换为数组

split()

基于指定的分隔符(可以是字符串,也可以是RegExp对象)将字符串分割成多个子字符串,并将结果放在一个数组中,可接受可选的第二个参数,用于指定数组的大小,返回数组。

var color = "blue,red,orange";
color.split();//["blue,red,orange"],长度为1
color.split(",");//["blur","red","orange"];长度为3
var color1 = 'blue-red-orange';
color1.split('-');//["blue", "red", "orange"],长度为3
console.log(color1.split('-',2) + "   长度:" + color1.split(",",2).length);//["blue", "red"],不知道为什么提示长度为1

4.字符串大小写转换

var str = 'hello';
str.toUpperCase();//"HELLO"
str.toLowerCase();//"hello"

5.删除字符串空格的方法

trim()

删除字符串中前置以及后置的所有空格 然后返回结果副本

function trimStr() {
    var str = "   我是一个字符串  ";
    var newStr = str.trim();
    alert(newStr);//"我是一个字符串"
}

6.字符串的模式匹配方法

1> match()

参数 只接受一个参数,要么是一个正则表达式,要么是一个RegExp()对象

返回:数组 数组中的第一项是与整个模式匹配的字符串 ,之后的每一项(如果有)保存着正则表达式捕获匹配的字符串。

var text = 'cat, bat, sat, fat';
var pattern = /.at/;
 
var matches = text.match(pattern);
matches // ["cat"]
matches.input // "cat, bat, sat, fat"
matches.index // 0

2> search()
参数:与match()方法相同。
返回:字符串中第一个匹配项的索引,如果没有匹配项,则返回-1。
search()方法始终从前向后找

var text = 'cat, bat, sat, fat';
var pattern = /at/;
 
text.search(pattern) // 1

3> replace()
参数:接收两个参数,第一个参数可以是一个RegExp对象或者一个字符串(这个字符串不会转换成正则表达式),第二个参数可以是一个字符串或者一个函数。
如果 第一个参数是字符串,那么只会替换第一个子字符串。要想替换所有子字符串,唯一的办法就是提供一个正则表达式,而且要指定全局标志(g)标志。
如果 第二个参数是字符串,那么还可以使用一些特殊的字符序列,将正则表达式操作得到的值插入到结果字符串中。
也可以是函数,传递给函数的参数依次是模式的匹配项,模式的匹配项在字符串中的位置,和原始字符串。在正则表达式定义了多个捕获组的情况下,传递给函数的参数依次是模式的匹配项,第一个捕获组的匹配项,以此类推,但最后两个参数分别是模式的匹配项在字符串中的位置和原始字符串。

var text = 'xxx-love-xxx';
var pattern = /xxx/g;
 
var result = text.replace(pattern,'2')
result// "2-love-2"
 
text.replace(/(xxx)-\w{4}-(xxx)/g,'I love YOU');//"I love YOU"
var text = 'xxx-love-xxx';
var pattern1 = /xxx/g;
 
var result = text.replace(pattern1,'$$')
result// "$-love-$"
 
var result = text.replace(pattern1,'$&2')
result//"xxx2-love-xxx2"
 
var result = text.replace(pattern1,'$\'')
result//"-love-xxx-love-"

 

 

 

http://www.jb51.net/article/85161.htm

http://www.cnblogs.com/huangjianhuakarl/archive/2013/05/29/3105573.html

http://www.jb51.net/article/62176.htm

 

posted @ 2016-12-28 13:28  幻影-2000  阅读(244)  评论(0编辑  收藏  举报