[js点滴]JavaScript字符串常见方法总结

时间:2021-06-06 23:58:46
// 1.创建字符串 
// 1.1 字面量创建
var str1 = "hello world";
// 1.2 构造函数创建字符串对象
var str2 = new String("hello world");

/* 2.String.fromCharCode()方法
1.该方法中的参数是一系列unicode的码点(例如:'\u0012' 码点:0012),返回对应的字符串.
2.传入参数的值不能超过0xFFFF大小
3.该方法定义在对象本身,而不是创建对象实例方法上面
String.fromCharCode而不是str.fromCharCode
*/

var str = String.fromCharCode(0x12,0x45,0x67,0x122,0xfe,0x23);

//3.作用于实例对象的方法和属性
//3.1 length 返回字符串的长度
/*3.2 charAt()
返回指定位置的字符,参数从0开始.
*/

var str1 = "hello";
var res1 = str1.charAt(1);//res1 = e;

console.log("res1="+res1);
//3.2.1 这个方法等效于用数组下标方式来返回字符
var res2 = str1[1];//res2=e;
//3.2.2 如果参数为负或者超过字符的长度,charAt()返回空字符串
var res3 =str1.charAt(-1);//res = '';

/*4.charCodeAt()
该函数返回给定位置字符Unicode的码点(10进制表示),刚好是String.fromCharCode()的逆操作.
*/


var str2 = "acd";
var result2 = str2.charCodeAt(2);//d字符码点:100
var resu2 = String.fromCharCode(100);//把100转换为Unicode字符d

//5.concat()用于连接两个字符串,返回一个新的字符串
//5.1concat()中的参数可以写多个字符串
var str3 = "hello";
var str4 = "world";
var str5 = "zhang";
var str6 ="san";
//var res10 = str3.concat(str4);
var res11 = str3.concat(str4,str5,str6);
alert(res11);
var res12 = "abc".concat("a","b","c");//abcabc
//5.2 该方法的字符串连接等效于+连接符
var res13 = "abc"+"a"+"b"+"c";//abcabc

//6.slice() 用于从原来字符串中取出子字符串并返回.
//6.1 slice()中有2个参数,第1个参数子字符串的起始位置,第2个参数子字符串的结束位置(不包含该位置)
var str7 = "hello world";
var res14 = str7.slice(6,11);//world
//alert(res14);
//6.2 如果省略slice()中的第二个参数,则表示子字符串一直到整个字符串结束为止.
var res15 = str7.slice(6);//world
//alert(res15);//world
//6.3 如果该函数只有一个参数,且为负数,则从字符串结尾开始(从右向左)计算位置
var res16 = str7.slice(-5);//world
//alert(res16);
//6.4 如果该函数的第一个参数大于第二个参数,则返回一个空的字符串
var res17 = str7.slice(12,5);//返回一个空字符串""

//7.substring() 从原字符串中取出子字符串,跟slice使用一样.但是我们一般优先使用slice函数
var str8 = "helloWorld";
var res18 = str8.substring(0,5);//hello
//7.1如果该函数的第一个参数大于第二个参数,系统会自动调换2个参数的位置
var res19 = str8.substring(5,0);//hello
//7.2 如果函数参数中有负数,系统会把负数转换为0
var res20 = str8.substring(0,-4);//会把-4变成0 返回空字符串"";
//等效于var res20 = str8.substring(0,0);

//8.substr() 从原字符串取出子字符串,并返回
//8.1 两个参数(第一个参数:字符的起始位置;第二个参数:取出字符的个数(长度))情况
var res21 = "abcdefedrft".substr(2,5);//cdefe
//8.2,省略第二个参数 表示一直到字符串结束
var res22 = "abcdef".substr(4);//ef
//8.3 如果第一个参数是负数,表示从右向左确定字符串的起始位置
var res23 = "abcdef".substr(-2);//ef
//8.4 该函数两个参数,第二个参数值是负数,则会自动转换为0
var res24 ="abcdefg".substr(2,-3);//"",第二个参数-3会变成0
//等效于"abcdefg".substr(2,0)

/*9.indexOf(),lastIndexOf()
9.1 这两个方法用于确定一个字符串在另外一个字符串中的起始位置.都返回一个整数(位置一定是从左到右算起的).表示匹配的开始位置.如果返回-1表示不匹配.
9.2 两者的不同,indexOf()从字符串的头部开始匹配;lastIndexOf()从字符串的尾部开始匹配
*/

var stri = "abcdssed".indexOf("cds");//2
var stri1 ="abcdssessd".lastIndexOf("ss");//7
alert(stri);
alert(stri1);