文章目录
字符串方法(小)总结
一般用法
charAt()
返回指定索引位置的字符,存在的话返回索引位置,不存在话返回空。
var s = "qwe"
console.log(s.charAt(1))//w
console.log(Boolean(s.charAt(5)))//false
contact()
不改变原字符串,连接两个或多个字符串,返回连接后的字符串。
var str = "abc"
console.log(str.concat("ss")) //abcss
console.log(str) //abc
charCodeAt()
返回指定位置字符的Unicode编码 。
var s = "0bcssduvsjvs";
console.log(s.charCodeAt(0));//48
indexOf()和lastindexof()
indexof()返回字符串中检索指定字符第一次出现的位置。
lastIndexof返回字符串中检索指定字符最后一次出现的位置,可以有两个参数。
第二个参数表示开始检索的起始位置,返回的都是该字符的索引位置。
var str = "abcdefcba";
console.log(str.indexOf('c', 4)) ;//6
console.log(str.lastIndexOf('c', 4));//2
slice()
提取字符串的片段,并在新的字符串中返回被提取的部分。
只有一个参数的时候,返回的是从该位置到最后。
两个参数的时候,从该位置到指定位置(第二个参数)但是不包含结束位置(第二个参数指定的位置)
参数是负数的时候,表示从后遍历。
var str = "abcdef";
console.log(str.slice(1));//bcdef
console.log(str.slice(1, 2));//b
console.log(str.slice(-1));//f
substr()和substring()
当一个参数的时候,两个的表现形式都表示返回从指定位置到字符串最后。
当二个参数的时候,substr()的第二个参数表示长度,substring()的第二个参数表示截至位。
var str = "abcdef"
console.log(str.substr(1)) //bcdef
console.log(str.substring(1)) //bcdef
console.log(str.substr(1, 4)) //bcde
console.log(str.substring(1, 4)) //bcd
console.log(str) //abcdef 不改变原形
toUpperCase()和toLowerCase()
大小写互换。
var str1 = "abcdefcba";
var str2 = "ABCDEFCBA";
console.log(str1.toUpperCase());//ABCDEFCBA
console.log(str2.toLowerCase());//abcdefcba
split()
把字符串分割为字符串数组。
第二个参数是表示返回数组的最大长度。
一个参数的时候,该参数为字符串或者是正则表达式。会按照该参数来分隔字符串形成数组,比如字符串中有"|“符号,传的参数是”|",那么形成数组,就是按照|符号分隔形成的。
var str1 = "abcdefg";
console.log(str1.split("")); //a,b,c,d,e,f,g
console.log(str1.split("", 3)); //a,b,c
var str = "q|w|e,r|t,t|u|y";
console.log(str.split("|")); //q,w,e,r,t,t,u,y
toString()
var num = 113213;
var str = num.toString();//转为字符串
console.log(typeof str);//string
join()
把数组中的所有元素转换为一个字符串。
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var energy = fruits.join();//Banana,Orange,Apple,Mango
match()
match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配,例如:
var str="The rain in SPAIN stays mainly in the plain";
var n=str.match(/ain/g);
valueOf()
返回 String 对象的原始值,valueOf() 方法通常由 JavaScript 在后台自动进行调用。
var str="Hello world!";
document.write(str.valueOf());//Hello world!
trim()
trim() 方法用于删除字符串的头尾空白符,空白符包括:空格、制表符 tab、换行符等其他空白符等,不会改变原始字符串,不适用于 null, undefined, Number 类型。
var str = " Runoob ";
alert(str.trim());//Runoob
ES6新增
codePointAt()
返回所传索引位置处的字符 的代码点(ascll码)
var a = "abcdef";
a.codePointAt(0);//97
fromCodePoint()
String.fromCodePoint()方法,可以识别Unicode 编号大于0xFFFF
的字符,并且返回该字符,
若传进多个参数,则会连接成字符串返回。
at()
与charAt()同用,但可以返回Unicode 编号大于0xFFFF
的字符。、
'abc'.at(0) // "a"
'吉'.at(0) // "吉"
'吉'.charAt(0) // "�"
normalize()
许多欧洲语言有语调符号和重音符号。为了表示它们,Unicode 提供了两种方法。一种是直接提供带重音符号的字符,比如Ǒ(\u01D1)。另一种是提供合成符号(combining character),即原字符与重音符号的合成,两个字符合成一个字符,比如O(\u004F)和ˇ(\u030C)合成Ǒ(\u004F\u030C)。但目前不能识别三个或三个以上字符的合成。
'\u004F\u030C'.normalize('NFC').length // 1
'\u004F\u030C'.normalize('NFD').length // 2
normalize方法可以接受一个参数来指定normalize的方式,参数的四个可选值如下。
NFC,默认参数,表示“标准等价合成”(Normalization Form Canonical Composition),返回多个简单字符的合成字符。所谓“标准等价”指的是视觉和语义上的等价。
NFD,表示“标准等价分解”(Normalization Form Canonical Decomposition),即在标准等价的前提下,返回合成字符分解的多个简单字符。
NFKC,表示“兼容等价合成”(Normalization Form Compatibility Composition),返回合成字符。所谓“兼容等价”指的是语义上存在等价,但视觉上不等价,比如“囍”和“喜喜”。(这只是用来举例,normalize方法不能识别中文。)
NFKD,表示“兼容等价分解”(Normalization Form Compatibility Decomposition),即在兼容等价的前提下,返回合成字符分解的多个简单字符。
includes()
判断字符串中是否存在该字符。
var a = "asadasd";
console.log(a.includes("s"));//yes
startsWith()和endsWith()
该startsWith()方法确定字符串是否以指定字符串的字符开头,endsWith()判断字符串是否以指定字符串的字符结尾。两种方法区分大小写。
var str1 = "file:///C:/Users/iTAze/Desktop/1.html";
var str2 = "file.jpg";
console.log(str1.startsWith("file:///"))// true;
console.log(str2.endsWith(".jpg"))// true;
repeat()
返回一个重复n次的新字符串。
var str1='a';
var str2=str1.repeat(3);
console.log(str2);//aaa
padStart()和padEnd()
用于头部补全和尾部补全
var aa = "1"
aa.padStart(4,'123') // 1231
aa.padEnd(6,'2') //122222
raw()
识别了特殊符。
var raw = String.raw'Not a newline:
';
document.write(raw === 'Not a newline: \n'); // true
模板字符串
模板字符串相当于加强版的字符串,用反引号 `, 除了作为普通字符串,还可以用来定义多行字符串,还可以在字符串中加入变量和表达式。
普通用法
var string = `Hello'\n'world`;
console.log(string);
// "Hello'
// 'world"
多行字符串
var string1 = `Hey,
can you stop angry now?`;
console.log(string1);
// Hey,
// can you stop angry now?
字符串插入变量和表达式
变量名写在 ${} 中,${} 中可以放入 JavaScript 表达式。
var name = "Mike";
var age = 27;
var info = `My Name is ${name},I am ${age+1} years old next year.`
console.log(info);// My Name is Mike,I am 28 years old next year.
字符串中调用函数
function f(){
return "have fun!";
}
let string2= `Game start,${f()}`;
console.log(string2); // Game start,have fun!
最后
了解一下字符串的正则表达式。