创建方式
String类型是字符串的对象包装类型,可以使用String构造函数创建。
var strObj = new String("Hello World");
我们来检测一下它的类型
console.log(typeof(strObj));// object
我们通常可以这样写
var str ="hello world"
方法
继承的toLocaleString()、toString和valueof()方法,都返回对象所表示的基本字符串值。
String类型的每一个实例都有一个length属性,表示字符串中包含了多少了字符。
var str = "hello world";
console.log(str.length); //11
字符方法
$: charAt() 以单字符串的形式返回给定位置的那个字符
: fromCharCode() 方法 接受一个或多个字符编码,然后将他们转换成一个字符串。
这两个方法都接收一个参数,即基于0的字符位置(下标)。
var str = 'hello word'
console.log(str.charAt(2)); //l 找字符串下标输出对应的字符串元素;
console.log(str.charCodeAt(1)); // 101 找字符串下标输出对应的字符串元素的字符编码;
console.log(String.fromCharCode(104,101,108,108,111)); //hello 单独给个String 然后输入‘字符编码’,输出他们每个编码对应的每个字符;
字符串操作方法
$: concat() 用于将一个或多个字符串拼接起来,返回拼接得到的新字符串。
列如
var str = "hello"
var str1 ="world!"
console.log(str.concat(" ",str1)) //hello world!
接下来我们介绍一下在字符串中创建新字符串的方法我们今天介绍三种,slice、substring、substr
区别
str.slice(start, end), start<= 字符 < end , 如果是负数就是从后向前找;
str.substring(start, end),当参数为正数时start<= 字符 < end ,当参数为负数时,对应下标为0(无论是第一个参数还是第二个参数)小的数为start, 大的数为end;
str.substr(index,howmany),第一个数为其实位置的下标,第二个数为要截取几个;
举例
var str = "hello world";
console.log(str.slice(6)); //"world"
console.log(str.substring(6)); //"world"
console.log(str.substr(6)); //"world"
当有一个参数的时候是三个返回值都一样
var str = "hello world";
console.log(str.slice(2,7)); //"llo w"
console.log(str.substring(2,7)); //"llo w"
console.log(str.substr(2,7)); //"llo worl"
俩个参数时substr是不是就不一样了呢,因为它的7是往后截取7个;
var str = "hello world";
console.log(str.slice(-4)); //"orld"
console.log(str.substring(-4); //"hello world" 此方法的参数是负数都转换为0
console.log(str.substr(-4)); //"orld"
console.log(str.slice(4,-2)); //"o wor"
console.log(str.substring(4,-4)); //"hell" 负数对应索引为0;小的数为start, 大的数为end;所以它其实就变成了str.substring(0,3);
console.log(str.substr(3,-4)); //""(空字符串)
字符串位置方法
$: indexof()
$: lastIndexof()
var str = 'hello word';
console.log(str.indexOf('o')); //4 根据给出的字符去找他对应的下标; 从左向右;
console.log(a.lastIndexOf('o')); //7 根据所给出的字符去找他对应的下标,从右向左;
console.log(a.indexOf('o',6)); //7 从第六个下标开始找’o‘,意思就是找第六个下标之后的第一个o,的下标;
console.log(a.lastIndexOf('o',6)); //4 先找到下标为6的字符,再从这个字符从右向左找第一个o的下标;
//如果找不到的话 返回-1;
trim()方法 此方法会创建一个字符串副本,删除前置以及后缀的所有空格,然后返回结果。
列如
var str =" a b c"
console.log(str.trim()) //a b c
去不了中间的空格
我们封装一下trim
var str = ' a b c ';
function getTrim(string){
// \s 空格
// g 全局
//^ 开始
//$ 结束
//+ 多个
var newstr = str.replace(/^\s+|\s+$/g,''); //a b c 中间空格还在
var newstr = str.replace(/\s+/g,''); //abc 去除全局空格
return newstr;
}
console.log(getTrim(str));
字符串大小写转换方法
var bb = 'hello word';
var bbb = bb.toUpperCase(); //把字符串转换成大写;
console.log(bbb); //HELLO WORD
var aa = "I LOVE YOU"
var aaa = aa.toLowerCase() //转小写
console.log(aaa) // i love you
字符串的匹配模式方法
$: replace() 为了简化替换子字符串的操作。
该方法接受两个参数:1)可以是一个RegExp对象或者一个字符串 2)可以是一个字符串或者函数
var str =" he llo "
var str1 =str.replace(/\s+/g,"") //hello
$: split() 以指定的分隔符将一个字符串分割成多个子字符串,并将结果放在一个数组
var str = 'hello';
console.log(str.split('')); //["h", "e", "l", "l", "o"]
字符串转数组
var arr = 'aa=11&bb=22&cc=33&dd=44';
var obj ={};
var brr= arr.split('&');
console.log(brr); //["aa=11", "bb=22", "cc=33", "dd=44"]
for(var i in brr){
console.log(brr[i].split('='));
obj[brr[i].split('=')[0]] = brr[i].split('=')[1];
}
console.log(obj);