字符串对象:
作用:String对象用于处理文本(字符串)
创建:
var str = "abc";
var str = new String("abc");
包装对象(装箱、拆箱)——了解
JS中能够自动将基本类型包装成对应的包装对象,使用完毕后自动还原。
字符串也可以看作是一个数组,数组的元素是一个一个的字符。
API:
属性:length——字符串长度
方法:字符、编码
charAt(index) // 字符串下标为index的值
charCodeAt(index) // 返回指定位置的字符的Unicode编码
String.fromCharCode(code) // 接受一个指定的Unicode值,然后返回一个字符串。如果有多个值,用英文逗号(,)隔开
/**字符串API**/
<script>
var str = "hello world!"
document.write(str.charAt(1));
</script>
// 输出的是e
<script>
var str = "hello world!"
document.write(str.charCodeAt(1));
</script>
// 输出的是101
<script>
document.write(String.fromCharCode(99));
</script>
// 输出的是c
<script>
document.write(String.fromCharCode(97, 98, 99));
</script>
// 输出的是abc
查找API:
indexOf() // 返回某个指定的字符串值在字符串中首次出现的位置。如果要检索的字符串值没有出现,则该方法返回 -1
lastIndexOf() // 可返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索,如果没有找到匹配字符串则返回 -1
/**查找API**/
/**
* 方法indexOf
**/
<script>
var str="Hello world!"
document.write(str.indexOf("Hello") + "<br />")
document.write(str.indexOf("World") + "<br />")
document.write(str.indexOf("world"))
</script>
// 方法大小写敏感
// 所以输出的值是:
// 0
// -1
// 6
/**
* 方法lastIndexOf
**/
<script>
var str="I am from runoob,welcome to runoob site.";
var n=str.lastIndexOf("runoob");
console.log(n);
</script>
// 方法大小写敏感
// 所以输出的值是:
// 28
正则表达式相关:
match() // 在字符串内检索指定的值,找到一个或多个正则表达式的匹配。要看正则是否具有标志 g。没有找到返回null
search() // 用于检索字符串中指定的字符串,或检索与正则表达式相匹配的子字符串;返回对应位置,没有检索到返回-1
replace(oldContent, newContent) // 用后面的值替换掉前面的值
split(sep) // 以指定的sep分割符来分割字符串内容,返回分割后的数组
/**正则表达式相关**/
/**
* match()方法
**/
<script>
var str="The rain in SPAIN stays mainly in the plain";
var n=str.match(/ain/g);
console.log(n);
</script>
// 在字符串中查找 "ain", 输出的是:
// ["ain", "ain", "ain"]
/**
* search()方法
* 检索 "W3School"
**/
<script>
var str="Visit W3School!"
document.write(str.search(/W3School/))
</script>
// 输出的值是:
// 6
<script>
var str="Visit W3School!"
document.write(str.search(/w3school/))
</script>
// 因对大小写敏感,所以输出的值是:
// -1
<script>
var str="Visit W3School!"
document.write(str.search(/w3school/i))
</script>
// 因做了忽略大小写的检索处理,所以输出的值是:
// 6
/**
* replace() 方法
**/
<script>
var str="Visit Microsoft! Visit Microsoft!";
var n=str.replace("Microsoft","Runoob");
console.log(n);
</script>
// 执行一次替换,当第一个 "Microsoft" 被找到,它就被替换为 "Runoob",输出的值是:
// "Visit Runoob!Visit Microsoft!"
/**
* split() 方法
**/
<script>
var str="How are you doing today?"
document.write(str.split(" ") + "<br />")
document.write(str.split("") + "<br />")
document.write(str.split(" ",3))
</script>
// 输出的值是:
// ["How", "are", "you", "doing", "today?"]
// ["H", "o", "w", " ", "a", "r", "e", " ", "y", "o", "u", " ", "d", "o", "i", "n", "g", " ", "t", "o", "d", "a", "y", "?"]
// ["How", "are", "you"]
截取API:
slice(start, end) // 截取,可对数组操作,不包括下标为end的元素
substring(start, end) // 截取,不可对数组操作
大小写转换API:
toUpperCase() // 把字符串转换为大写
toLowerCase() // 把字符串转换为小写
/**把字符串转换为大写**/
<script>
var str="Hello World!"
console.log(str.toUpperCase())
</script>
// 输出字符串:HELLO WORLD!
/**把字符串转换为小写**/
<script>
var str="Hello World!"
console.log(str.toLowerCase())
</script>
// 输出字符串:hello world!
ES6新增字符串API
String.prototype.startsWith() // 是否以···作为开头
String.prototype.endsWith() // 是否以···作为结尾
String.fromCodePoint() // 从码点返回对应字符
String.prototype.codePointAt() // 返回一个字符的码点
作者博客:www.huanlezhanji.com