String对象(字符串)
字符串在本质上也是数组 都可以通过str[i]访问内容
但是数组创建后可以修改 而字符串一旦创建内容不可更改
属性:length 作用与数组相同 获取字符串的长度
方法:
charAt( ) 返回指定位置的字符
var str = "abcdefg"; console.log(str.charAt(5));// 返回 f
charCodeAt( ) 返回指定位置字符的Unicode码
var str = "abcdefg"; console.log(str.charCodeAt(5)) // 返回 102 小写f的Unicode码
fromCharCode( ) 将Unicode码转换为字符串
console.log(String.fromCharCode(97,98,99,100,101));//返回abcde
concat( ) 拼接字符串 和数组用法相同
slice( ) 选取字符串 和数组用法相同
split( ) 将字符串分隔为字符数组
var str = "你好!我是你的好朋友!"; console.log(str.split(""));// 输出["你", "好", "!", "我", "是","你", "的", "好", "朋", "友", "!"]
indexOf( ) 返回指定字符串的第一个位置 若没有则返回-1
var str = "abcdefgf"; console.log(str.indexOf("f"));//返回 从前向后检索的第一个f的下标 5
lastIndexOf( ) 从后向前搜索字符串的第一个位置
var str = "abcdefgf"; console.log(str.lastIndexOf("f"));// 返回 从后向前检索的第一个f的下标7
toLowerCase() 将字符串转换为小写
toUpperCase() 将字符串转换为大写
var str = "ABCdefGF"; console.log(str.toUpperCase());//返回 ABCDEFGF console.log(str.toLowerCase());//返回 abcdefg
支持正则表达式的String对象的方法:
match( ) 找到一个或多个正则表达式的匹配字符串 也可以直接检索字符串
replace( ) 替换与正则表达式匹配的字符串
search( ) 查找字符串中第一个匹配的子字符串的位置 没有找到返回-1
RegExp对象(正则表达式)
正则表达式的一些基础知识:
1.直接匹配单个字符
[0-9]:匹配一位数字
[a-z]:匹配一位小写字母
[A-Z]:匹配一位大写字母
[A-z]:匹配一位大写或小写字母
[\u4e00-\u9fa5]匹配一位汉字
2.匹配字符简写
\d:匹配一位数字 \D 非数字
\w:匹配一位数字、字母、下划线 \w 非字母数字下划线
\s:匹配空字符 \S 非空
\b:匹配字符串中开头或结尾的字符 \B 非单词边界
. :匹配所有字符
3.量词:规定字符出现次数
n+:至少包含一个n
n*: 包含0个或多个n
n?: 包含0个或一个n
n{x}: 包含x个n
n{x,y}: 包含x-y个n
n{x,}: 包含至少x个n
n$:以n结尾
^n:以n开头
?=n: 匹配后面紧接字符串n的字符串
?!n: 匹配后面没有字符串n的字符串
4.分组和选择
分组:
():将需要组成一组的字符串用()括起来
作用:可以让一个量词修饰多个字符集
选择:
| 或: 选择其中一个字符集
方法:
match( ) 匹配字符串中的正则规则的子字符串
var str="1 plus 2 equal 3" // 全局匹配数字 console.log(str.match(/\d+/g));//输出 [1, 2, 3]
这种方法可以用在将字符串转换为数组 只需要将匹配规则替换一下就可以
replace( ) 替换正则表达式
var str = " 你 好 吗 ? "; console.log(str.replace(/\s+/g,""));//输出 你好吗?
这种方法常用于将字符串中某个不需要的字符给删除掉 这里删除的是字符串里面的空格
search( ) 查找与正则表达式匹配字符串的位置
var str = "你你你是是是我我我"; console.log(str.search("你"));//返回第一个你的下标 0 console.log(str.search(/你/));//与上一种相同