目标很简朴,首要回首下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,这里没有举办声名,如欲相识,可点击下面的链接查察 (编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|