js中的String类型方法

js中的String类型方法

访问字符串中特定字符的方法:

1.charAt():接收一个参数,即基于0的字符位置。以单字符字符串的形式返回给定位置的那个字符。

2.charCodeAt():接收一个参数,即基于0的字符位置。以单字符字符串的形式返回给定位置的那个字符的字符编码。

3.[],可以使用方括号加数字索引来访问字符串中的特定字符.

操作字符串的方法

1.concat():接收任意个参数,用于将一或多个字符串拼接起来,返回拼接得到的新字符串。不改变原字符串。

【加号操作符(+)也是用来拼接字符串的、在实践中使用的更多】

2.创建新字符串的方法:

1)slice()方法,substring()方法:接收一或两个参数,开始位置(包括开始位置)和结束位置(不包括结束位置),如果只有一个参数,默认结束位置是字符串末尾位置。如果第二个参数大于第一个参数,slice()方法不返回任何值,substring()会将较小的数作为开始位置,较大的位置作为结束位置。返回一个新字符串,原字符串不改变。另外,slice方法也用于Array对象。

2)substr()方法:接收一或两个参数,开始位置(包括开始位置)和返回的字符个数,如果只有一个参数,默认结束位置是字符串末尾位置。返回一个新字符串,原字符串不改变

注意:传入参数负值的情况:

slice():会将传入的负值与字符串的长度相加。

substr():第一个参数为负会将传入的负值加上字符串的长度,第二个参数为负会将负的第二个参数转换为0.

substring():会把所有负值参数都转换为0.

字符串中查找子字符串位置的方法

1.indexOf():可以接受一个或两个参数,第一个参数为子字符串,第二个参数表示从哪个位置开始搜索。从一个字符串中搜索给定的子字符串,从字符串指定的位置向后搜索子字符串,然后返回子字符串的位置(子字符串如果有多个字符,返回首字符在原字符串的位置)(如果没有找到该字符串,则返回-1)

2.lastIndexOf():可以接受一个或两个参数,第一个参数为子字符串,第二个参数表示从哪个位置开始搜索。从一个字符串中搜索给定的子字符串,从字符串指定的位置向前搜索子字符串,然后返回子字符串的位置(子字符串如果有多个字符,返回首字符在原字符串的位置)(如果没有找到该字符串,则返回-1)

3.可以通过循环调用indexOf()或lastIndexOf()来找到所有匹配的子字符串。

var stringValue="Hello world!Hello JavaScript!";
var positions=new Array();
var pos=stringValue.indexOf("o");
while(pos!==-1){
   positions.push(pos);
   pos=stringValue.indexOf("o",pos+1);
}
console.log(positions);

trim()方法:

1.这个方法会创建一个字符串的副本,删除前置及后缀的所有空格,然后返回结果。原数组不改变。

2.大部分浏览器都支持该方法,此外,Firefox 3.5+,Safari 5+和Chorme 8+还支持非标准的trimLeft()和trimRight()方法,分别用于删除字符串开头和末尾的空格。

字符串大小写转换方法:

1.toLowerCase()、toUpperCase():通用的转换大小写的方法

2.toLocaleLowerCase()、toLocaleUpperCase():针对特定地区的转化大小写的方法。

字符串的模式匹配方法:

1.match():在字符串上调用这个方法,本质上与调用RegExp的exec()方法相同。match()方法只接受一个参数,要么是一个正则表达式,要么是一个RegExp对象。

2.search():传入正则表达式或者RegExp对象,返回字符串中第一个匹配项的索引;如果没有找到匹配项,则返回-1.而且,search()方法始终是从字符串开头向后查找模式。

3.replace( ) :接收两个参数:第一个参数可以是一个RegExp对象或者一个字符串(这个字符串不会被转换成正则表达式),匹配字符串,第二个参数可以是一个字符串或者一个函数,替换字符串。如果第一个参数是字符串,那么只会替换第一个子字符串。要想替换所有子字符串,唯一的办法就是提供一个正则表达式,而且要指定全局(g)标志。

​ 如果第二个参数是字符串,还可以使用一些特殊的字符序列($ 替 换 替换 ,以及RegExp构造函数的短属性名等),将正则表达式操作得到的值插入到结果字符中。

​ 第二个参数也可以是一个函数。在只有一个匹配项(即与模式匹配的)情况下,会向这个函数传递3个参数:模式的匹配项、模式匹配项在字符串中的位置和原始字符串。在正则表达式中定义了多个捕获组的情况下,传递给函数的参数依次是模式的匹配项、第一个捕获组的匹配项、第二个捕获组的匹配项…,但最后两个参数仍然分别是模式的匹配项在字符串的位置和原始字符串。**这个函数应该返回一个字符串,表示应该被替换的匹配项。**使用函数作为replace()方法的第二个参数可以实现更加精细的替换操作。

function htmlEscape(text){
    return text.replace(/[<>"&]/g,function(match,pos,originalText){
        switch(match){
            case "<":
            return "<";
            case ">":
            return ">";
            case "&":
            return "&";
            case "\"":
            return """;
        }
    })
}
console.log(htmlEscape("

Hello World!

"
));//<p class="greeting">Hello World!</p>

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


var colorText="red,blue,green,yellow";
var colors1=colorText.split(",");
console.log(colors1);//[ 'red', 'blue', 'green', 'yellow' ]
var colors2=colorText.split(",",3);
console.log(colors2);//[ 'red', 'blue', 'green' ]
var colors3=colorText.split(",",5);//指定数组的大小超过原数组的长度,默认变换为原数组的长度
console.log(colors3);//[ 'red', 'blue', 'green', 'yellow' ]
console.log(colors3.length);//4
var colors4=colorText.split(/,/);
console.log(colors4);//[ 'red', 'blue', 'green', 'yellow' ]
var colors5=colorText.split(/[,]+/);
console.log(colors5);//[ 'red', 'blue', 'green', 'yellow' ]
var colors6=colorText.split(/[^\,]+/);//^是否定的意思
console.log(colors6);//[ '', ',', ',', ',', '' ]

注意:在正则表达式使用捕获组时在不同的浏览器中有微妙的差别。

比较字符串的方法

localeCompare():比较在字母表中的排位前后顺序。如果字符串在字母表中应该排在字符串参数之前,则返回一个负数,如果等于,则返回0,如果应该排在字符串参数之后,则返回一个正数。

注意:localeCompare()有地区不同的区别。

String构造函数的方法

fromCharCode():接收一或多个字符编码,然后将它们转换成一个字符串。从本质上看,这个方法和实例方法charCodeAt()执行的是相反的操作。

console.log(String.fromCharCode(104,101,108,108,111));//hello

HTML方法

满足生成动态格式化HTML的需求.常见方法:

var colorText="red,blue,green,yellow";
console.log(colorText.big());//red,blue,green,yellow
console.log(colorText.link("url"));//red,blue,green,yellow

你可能感兴趣的:(js)