JS教程:String对象及其常用属性以及方法

目的很简单,主要回顾下javascript里面String常用的一些属性以及方法,虽然经常使用,但其实一些细节没有注意到,总是等到用到的时候再去查有点浪费时间,因此总结了下加深印象 

一、字符串的几种声明方式 

var str = 'hello world !'; 
var str = String('hello world !'); 
var str = new String('hello world !'); 
var str = new Object('hello world !'); 
二、常用String属性和方法 

stringObj.length 

作用:返回字符串的字符总数 

'abc'.length; //输出:3 


stringObj.indexOf(searValue [, fromIndex]) 

作用:返回searchValue在stringObj中首次出现的位置,默认从位置0开始搜索,除非指了开始搜索的位置 fromIndex 

注意:fromIndex可选;如果没有找到searchValue,则返回-1 

'abc'.indexOf('c'); //输出 2 
'abc'.indexOf('d'); //输出 -1 
'abc abc'.indexOf('c', 3); //输出 6 

stringObj.lastIndexOf(searchValue[, fromIndex) 

作用:返回searchValue在stringObj中最后一次出现的问题,默认从最后一个字符开始搜索。当指定了fromIndex时,则从fromIndex位置处从后往前搜索 

注意:fromIndex可选;如果没有找到searchValue,则返回-1 

'abc abc'.lastIndexOf('c'); //输出 6 
'abc abc'.lastIndexOf('d'); //输出 -1 
'abc abc'.lastIndexOf('c', 5); //输出 2 


stringObj.charAt(index) 

作用:返回stringObj指定位置(index)处的字符,index的取值为 0<index<length 

注意:若index>stringObj.length或index<0,则返回空字符串"" 

'abc'.charAt(1); //输出 b 
'abc'.charAt(10); //输出 "" 

stringObj.toUpperCase() 

作用:将stringObj中的小写字母全部转成大写字母 

'abC'.toUpperCase(); //输出 ABC 

stringObj.toLowerCase() 

作用:将stringObj中的大写字母全部转成小写字母 

'ABc'.toLowerCase(); //输出 abc 

stringObj.concat(string1, string2, ... stringN) 

作用:连接两个或多个字符串,首先将参数传入的stringX转成字符串,然后依次连接到stringObj的后面 

注意:concat方法不会改变stringObj自身 

var str = 'abc'; 
var tmp = str.concat('def'); abcdef 
console.log(tmp); 
console.log(str); //输出 abc 

stringObj.substring(start[, end]) 

作用:截取stringObj从start开始,至end为止之前的所有字符,即包括start处的字符,但不包含end处的字符

注意:end为可选参数,如不指定,则截取从start开始到stringObj末尾的所有字符;start、end均为非负整数

'abcdef'.substring(1, 3); //输出 bc 
'abcdef'.substring(1); //输出 bcdef 
'abcdef'.substring(1, 1); //输出 "" 

stringObj.slice(start[, end]) 

作用:截取stringObj从start开始,到end为止之前的所有字符;即包括start处的字符,但不包括end处的字符。start与end均可为负值,当为负值时,表示从最后一个字符算起的第n个字符,比如-1表示最后一个字符,-2表示倒数第二个字符。 

注意:end为可选参数,如不指定,则截取从start开始到stringObj末尾的所有字符 

'abcdef'.slice(1,3); //输出 bc 
'abcdef'.slice(1); //输出 bcdef 
'abcdef'.slice(-3); //输出 def 
'abcdef'.slice(-3, 5); //输出 de 

stringObj.split(separator[, howmany]) 

作用:将separtor为为分隔,将stringObj分割成一个字符串数组。separator可以是字符串或者正则表达式,若为字符串,则以separator为分割符;弱separator为正则表达式,则以符合separator指定模式的字符串作为分隔符。 

注意:haowmany为可选参数,表示分割获得的字符串数组的最大长度,如超过howmany指定的长度,则对结果进行截断;如果howmany为正则表达式,且包含子表达式,则获得的数组里面包含子表达式匹配的字符串 

'hello world'.split(' '); //输出 ['hello', 'world'] 
'abcdef'.split(''); //输出 ['a', 'b', 'c', 'd', 'e', 'f'] 
'aa bb cc dd ee'.split(' ', 3); //输出 ['aa' 
'aaa bbb ccc dd'.split(/\s+/); //输出 ['aaa', 'bbb', 'dd'] 
'aaa_b_ccc'.split('_b_'); //输出 ['aaa', 'ccc'] 
'aaa_b_ccc'.split('_(b)_'); //输出 ["aaa", "b", "ccc"] 

stringObj.match(regexp) 

作用:在字符串内检索指定的正则表达式的匹配结果,该结果与regexp是否有指定全局标志g有关 

1)没有g:只是执行一次搜索;如果没有匹配的字符串,则返回null;如果有匹配的字符串,则返回一个数组,数组的第1个元素存放的是regexp匹配的结果,数组内剩余的其他元素,分别存放regexp子表达式匹配的结果;除此之外,返回结果还有两个属性,分别是input以及index;input属性存放的是原始字符串stringObj,index是匹配的起始字符在stringObj中的位置 

2)有g:进行全局搜索,并返回所有匹配的子字符串(不包含子表达式匹配结果);如果没有匹配的字符串,返回null;如有匹配的字符串,则返回的数组里存放的所有匹配的子字符串;需要注意的时候,此时没有index、input属性 

//无全局标志g+无子表达式 
var result = 'abc123'.match(/12/); //输出 ['12'] 
console.log(result.index); //输出 3 
console.log(result.input); //输出 'abc123' 

//无全局标志g+无匹配结果 
result = 'abc123'.match(/def/); //输出 null 

//无全局标志g+有子表达式 
result = 'abc123'.match(/bc(123)/); //输出 ['bc123', '123'] 

//有全局标志+无子表达式 
result = 'abc123abc123'.match(/ab/g); //输出 ['ab', 'ab'] 

//无全局标志+有子表达式 
result = 'abc123abc123'.match(/abc(123)/); //输出 ['abc123', 'abc123'] 

stringObj.search(regexp) 

作用:检索与正则表达式regexp匹配的子字符串。如果没有匹配结果,则返回-1;如果有匹配结果,则返回第一个匹配结果的起始位置 

'abcdef'.search(/\d/); //输出 -1 
'123-456-789'.search(/-\d/); //输出 3 
stringObj.match(regexp, replacement) 

作用:将stringObj中的一部分字符串替换为另一部分字符串;如果regexp为字符串,则直接替换stringObj中等于regexp的第一个子字符串;如果regexp为正则表达式,则需要看是否有全局标志g。如果无g,则替换第一个子串;如果有g,则替换所有子串; 

注意:注意事项比较多,这里只举几个简单例子,更多参考资料请参见http://www.w3school.com.cn/js/jsref_replace.asp 

'Hello World'.replace('World', 'Casper'); //返回 'Hello Casper' 

'123abc123'.replace(/\d+/, 'D'); //返回 'Dabc123' 
'123abc123'.replace(/\d+/g, 'D'); //返回 'DabcD' 

'abc123'.replace(/bc(12)/, function(){ //输出 'aBC123' 

console.log(arguments[0]); //输出 'bc12'(匹配的子字符串) 
console.log(arguments[1]); //输出 '12'(匹配的第一个子表达式) 
console.log(arguments[2]); //输出 1(第一个匹配起始的位置) 
console.log(arguments[3]); //输出 'abc123'(原始字符串) 

return arguments[0].toUpperCase(); 
});

三、写在后面 
一些比较不常用的方法,比如stringObj.charCodeAt,或者标准里面没有明确说明实现的方法,如stringObj.substr,这里没有进行说明,如欲了解,可点击下面的链接查看

文章源于:http://www.veryhuo.com/a/view/41761.html

更多相关文章:http://www.jb51.net/article/62176.htm

http://www.cnblogs.com/amylis_chen/archive/2012/09/09/2678000.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值