String方法总结
蓝背景为与Array相同的方法
一、字符方法
charAt(index):返回在指定位置的字符。
var str="abcdefg"; //undefined str[0] //"a",因为ie67不支持这种写法 str.charAt(0) //"a"
charCodeAt(index):返回在指定的位置的字符的 Unicode 编码。
二、字符串操作方法,不会影响原字符串,返回新字符串
concat(stringX,stringX,...,stringX):字符串拼接->返回新字符串,不影响原字符串。更多时候用“+”
slice(start,end):提取字符串的片断->返回被提取的部分。参数为负数时,会将传入的负值与字符串的长度相加。end:若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。
split(separator,howmany):把一个字符串分割成字符串数组。howmany(可选)表示数组的最大长度,超过的部分将被舍弃。separator分隔符不被包含在任何子字符串中,如果sepatator为空字符串,则返回字符串中的字符序列组成的数组。如果split方法没有任何参数,则返回仅包含字符串本身,仅有一个元素的数组。
substring(start,stop):提取字符串中两个指定的索引号之间的字符。会将所有负值参数转换为0。
substr(start,length):从起始索引号提取字符串中指定数目的字符。将负的第一个参数加上字符串的长度,将负的第二个参数转换为0
var str="abcdefg"
//undefined
str.slice(0,1)
//"a"
str.substr(0,1)
//"
str
//"abcdefg"
str.slice(-3)
//"efg"
str.substring(-3)
//"abcdefg"
str.substr(-3)
//"efg"
str.slice(3,-4) //"" str.slice(0,-4) //"abc" str.substring(3,-4) //"abc" str.substr(3,-4) var str="how are you";
//undefined
str.split(" ")
//["how", "are", "you"]
var str = 'abcd' //undefined str.split('',2) //["a", "b"] str.split() //["abcd"]
trim:返回删除前后空格后的新字符串
trimLeft:删除开头空格
trimRight:删除末尾空格
var str=" abc " //undefined str //" abc " str.trim() //"abc" str //" abc " str.trimLeft() //"abc "
大小写转换:
toLowerCase
toLocalLowerCase
toUpperCase
toLocalUpperCase:针对地区的方法
三、字符串位置方法
indexOf(searchvalue,fromindex):返回某个指定的字符串值在字符串中首次出现的位置。
lastIndexOf(searchvalue,fromindex):在一个字符串中的指定位置从后向前搜索,返回位置。
str.indexOf('b') //1 str.lastIndexOf('b') //1
四、字符串模式匹配方法
match:
stringObject.match(searchvalue) stringObject.match(regexp)
一个参数,若没有找到任何匹配的子串,则返回 null。如果找到了一个或多个匹配子串,则返回一个数组。
var str="cat,bat,sat,fat" undefined str "cat,bat,sat,fat" var pattern=/.at/ undefined str.match(pattern) ["cat"] var str="cat, bat, sat, fat" undefined str.match(pattern) ["cat"] var pattern=/.atl/g //undefined str.match(pattern) //null var pattern=/.at/g //undefined str.match(pattern) //["cat", "bat", "sat", "fat"]
search(regexp):唯一参数与match相同,返回第一个匹配项的索引,没找到返回-1
replace(regexp/substr,replacement)->返回新字符串,原字符串不变
如果第一个参数是字符串(不会被转换成正则表达式),那么只会替换第一个子字符串。要想替换所有子字符串,唯一的办法 是提供一个正则表达式,而且指定g。
第二个参数可以是一个字符串或者一个函数
str //"cat, bat, sat, fat" str.replace(/at/g,"ond") //"cond, bond, sond, fond" str //"cat, bat, sat, fat" str.replace(/at/g,function(){ return 2}) //"c2, b2, s2, f2"
用法:http://www.cnblogs.com/dolphinX/archive/2012/11/21/2780559.html
第二个参数是函数:
function htmlEscape(text){ return text.replace(/[<>"&]/g,function(match,pos,originalText) { switch (match) { case "<": return "<"; case ">": return ">"; case "&": return "&"; case "\"": return """; } }) } //undefined htmlEscape("<p class=\"greeting\">Hello World!</p>") //"<p class="greeting">Hello World!</p>"
五、quote
quote:将字符串中包含的特殊字符进行转义(反斜杠),然后在字符串两边各加上一个双引号("
)并返回,并不修改原字符串。仅firefox支持。可以用JSON.stringify代替(https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify)
str | str.quote() | eval(str.quote()) |
---|---|---|
Hello world! |
"Hello world!" |
Hello world! |
Hello |
"Hello\n\tworld!" |
Hello |
" \ — ' |
"\" \\ \u2014 '" |
" \ — ' |
var meta = { '\b': '\\b', '\t': '\\t', '\n': '\\n', '\f': '\\f', '\r': '\\r', '"': '\\"', '\\': '\\\\' } var quote = window.JSON && JSON.stringify || function(str) { return '"' + str.replace(/[\\\"\x00-\x1f]/g, function(a) { var c = meta[a]; return typeof c === 'string' ? c : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); }) + '"' }
用途:
1、用在处理后端传给我们的数据
2、将数据存放在到localStroage
DOM存储的机制是通过存储字符串类型的键/值对,来提供一种安全的存取方式.所以需要把JSON转换为JSON字符串。
Storage介绍:https://developer.mozilla.org/zh-CN/docs/Web/Guide/API/DOM/Storage/Storage
本地存储:http://www.cnblogs.com/darr/p/4359866.html
参考:http://riny.net/2012/the-summary-of-javascript-string/