1. String对象属性
属性 | 描述 |
---|---|
length | 字符串的长度 |
示例代码:
var str ="this is a string";
console.log(str.length);
//16
2. String对象方法
String 类型的方法有很多,其中有一部分涉及到文本的样式变化,根据HTML规范,页面的结构、样式及行为应当分离。当我们想要改变文本的样式时,应该引用相应的CSS样式,而是通过JS去实现,因此本文对这部分的JS方法不作详细介绍。
属性 | 描述 |
---|---|
charAt() | 返回在指定位置的字符。 |
charCodeAt() | 返回在指定的位置的字符的 Unicode 编码。 |
fromCharCode() | 从字符编码创建一个字符串。 |
concat() | 连接字符串。 |
indexOf() | 检索字符串。 |
lastIndexOf() | 从后向前搜索字符串。 |
localeCompare() | 用本地特定的顺序来比较两个字符串。 |
match() | 找到一个或多个正则表达式的匹配。 |
replace() | 替换与正则表达式匹配的子串。 |
search() | 检索与正则表达式相匹配的值。 |
slice() | 提取字符串的片断,并在新的字符串中返回被提取的部分。 |
substr() | 从起始索引号提取字符串中指定数目的字符。 |
substring() | 提取字符串中两个指定的索引号之间的字符。 |
split() | 把字符串分割为字符串数组。 |
toLocaleLowerCase() | 把字符串转换为小写。 |
toLocaleUpperCase() | 把字符串转换为大写。 |
toLowerCase() | 把字符串转换为小写。 |
toUpperCase() | 把字符串转换为大写。 |
toSource() | 代表对象的源代码。 |
toString() | 返回字符串。 |
valueOf() | 返回某个字符串对象的原始值。 |
- | - |
涉及样式调整或页面结构的方法 | |
anchor() | 创建 HTML 锚。 |
big() | 用大号字体显示字符串。 |
blink() | 显示闪动字符串。 |
bold() | 使用粗体显示字符串。 |
fixed() | 以打字机文本显示字符串。 |
fontcolor() | 使用指定的颜色来显示字符串。 |
fontsize() | 使用指定的尺寸来显示字符串。 |
italics() | 使用斜体显示字符串。 |
link() | 将字符串显示为链接。 |
small() | 使用小字号来显示字符串。 |
strike() | 使用删除线来显示字符串。 |
sub() | 把字符串显示为下标。 |
sup() | 把字符串显示为上标。 |
代码示例:
var str = "hello";
console.log(str.charAt(0));
//h
console.log(str.charAt(10));
//如果下标超过字符串的长度,则返回空字符串
console.log(str.charCodeAt(0));
//104 “h”的Unicode编码
console.log(str.charCodeAt(str.length));
//NaN 当下标超过字符串长度时
console.log(String.fromCharCode(97,98,99,100));
//abcd 这个方法与charCodeAt()方法相对应,接收一个Unicode值,返回字符结果。与其他方法不同的是这
//是String对象的一个静态方法,因此使用的方式为String.fromCharCode(num),
//而不是strObj.fromCharCode(num)
console.log(str.concat(" world"));
//hello word
console.log(str);
//hello str本身的值并没有改变
console.log(str.concat(['a','b']));
//helloa,b 会先将数组字符串化,然后再进行拼接
console.log(str.indexOf("l"));
//2 返回指定字符在字符串中首次出现的下标(str中包含两个“l”)
console.log(str.indexOf("z"));
//-1 若该字符不存在则返回“-1”
console.log(str.indexOf("l"));
//3
var a="a",b="b";
console.log(a.localCompare(b));
//-1 若两个字符相等则返回“0”,若a大于b则返回“1”
2.1 字符查找与正则匹配 match()、search()、replace()
这三个方法都可用于正则匹配,所接受的参数即可以是一个指定的字符串,也可以是一个正则表达式。
var mail= "[email protected]";
console.log(mail.match(mail.match(/@\w+./)));
//@gmail.
var str = "hello world";
console.log(str.replace(/\b\w+\b/g,function(word){
return word.substring(0,1).toUpperCase()+word.substring(1);
}));
//Hello World;
console.log(str.search(/world/));
//6
2.2 字符串截取 slice(star,end)、substr(star,length)、substring(star,end)
slice与substring一样都是用来截取字符串,第一个参数代表起始位置(包含),第二个参数代表结束位置(不包含),唯一的不同在于,slice的两个参数可以为负数,而substing的参数需要为正整数。当slice的参数为负数时,代表从后向前的下标,例如如果star=-1则代表起始位置是最后一个字符。
substr的第一个参数代表起始位置,第二个参数代表截取的字符长度,由于ECMAscript没有对该方法进行标准化,因此不推荐使用。
var str = "hello word";
console.log(str.slice(-3,-1));
//or
console.log(str.substr(1,2));
//el
console.log(str.substring(0,2));
//he
2.3 字符串分隔 split(separator[, num])
split() 方法用于把一个字符串分割成字符串数组。第一个参数代码分隔符,第二个参数是可选的,如果不填那么split将分割后的数组如数返回,如果num有值,则返回对应数量的数组
var str = "a b c d";
str.split(' ');
//['a','b','c','d']
str.split(' ',2);
//['a','b']
split()方法和Array.join()相对应
2.3 大小写转换 toLowerCase()、toUpperCase()、toLocaleLowerCase()、toLocaleUpperCase()
toLowerCase()和toUpperCase()是相对应的方法,分别将字符串转成全小写或全大写。
var str = "Hello";
str.toLowerCase();
//hello
str.toUpperCase();
//HELLO
toLocaleLowerCase()、toLocaleUpperCase()在中文和英文环境下与前两个方法的作用一样,仅在部分特殊语言场景下会使用本地化方式(如土耳其语)。
3. 注意事项
3.1 indexOf()与lastIndexOf()
indexOf()和lastIndexOf()的功能基本一致,都是返回指定文本在字符串中出现的下标位置。二者唯一的区别就在于当字符串中存在相同字符时的处理方式,通过下面这个例子就很容易理解了。
var str = "hello";
console.log(str.indexOf("l"))
//2 返回指定字符在字符串中首次出现的下标(str中包含两个“l”)
console.log(str.lastIndexOf("l"))
//3 返回指定字符在字符串中最后一次出现的下标
3.2 字符大小比较——localCompare()
javascript中字符比较可以直接用“>”或者“<”,但是这种比较是基于字符的Unicode来的。而localCompare()则是结合了本地的排序规则。示例代码:
var a = "李";//Unicode=26446
var b = "张";//Unicode=24352
console.log(a<b);
//false "李"的Unicode大于“张”
console.log(a.localCompare(b))
//-1 按拼音顺序“李”小于“张”
3.3 search()与indexOf()的区别
search()和indexOf()均能返回字串在字符串中首次出现的下标,若没有匹配的字串则返回-1 。唯一不同的是search()的参数还可以是一个正则表达式,而indexOf()则不允许。