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)

strstr.quote()eval(str.quote())
Hello world! "Hello world!" Hello world!
Hello
        world!
"Hello world!" Hello
        world!
" — ' "" \ u2014 '" " — '

var meta = {
    '': '\b',
    '	': '\t',
    '
': '\n',
    'f': '\f',
    '
': '\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/

原文地址:https://www.cnblogs.com/darr/p/4342575.html