字符串方法
在底层字符串是以字符数组的形式保存的
length
用来获取字符串的长度
charAt()
返回指定位置的字符
charCodeAt()
获取指定位置字符Unicode编码
String.fromCharCode();
根据Unicode编码获取字符
concat()
连接字符串
indexOf()
该方法可以检查一个字符串中是否含有指定内容
如果字符串有该内容,则返回第一次出现的索引位置,没有则返回-1
指定第二个参数表示从指定位置开始找‘
lastIndexOf()
从后往前找
slice()
截取字符串
可以从字符串中截取指定内容
参数:包括第一个,不包括第二个,如果省略第二个参数则截取到后面所有参数
如果第二个参数为负值则从后面开始计算
substring()
截取字符串,和slice()类似,不能接收负值,如果第二个参数小于第一个则自动调换
substr()
截取字符串
参数:截取开始位置和截取的长度
split()
可以将一个字符串拆分为一个数组
需要一个字符串作为参数,根据字符串拆分成数组
如果传递一个空字符串,则拆分每一个
toLowerCase():将一个字符串转换为小写
toUpperCase():将一个字符串转换为大写
代码解释
var str = "hello";
console.log(str.length); //5
//charAt()
console.log(str.charAt(0)); //h
//charCodeAt()
console.log(str.charCodeAt(0)); //104
//String.fromCharCode()
console.log(String.fromCharCode(104)); //h
//concat()
console.log(str.concat("你好")) //hello你好
//indexOf()
console.log(str.indexOf("o")); //4
//lastIndexOf()
console.log(str.lastIndexOf("o")); //4
//slice()
console.log(str.slice(0,2)); //he
//substring()
console.log(str.substring(0,2)); //he
//substr()
console.log(str.substr(0,2)); //he
//split()
var str2 = "123,456,789";
result = str2.split(","); // 根据逗号拆分字符串
console.log(result); // ["123", "456", "789"]
str = "abcde";
console.log(str.toUpperCase()); //ABCDE
str = "ABCDE";
console.log(str.toLowerCase()); //abcde
正则表达式
正则表达式用于定义一些字符串规则
根据正则表达式来检查一个字符串是否符合规则
语法:
var 变量 = new RegExp("正则表达式", "匹配模式");
使用字面量来创建正则表达式
语法:
var 变量 = /正则表达式/匹配模式
\ 为转义字符
方法:
test()
使用这个方法检查一个字符串是否符合正则表达式的规则,返回true或false
匹配模式:
i:忽略大小写
g:全局匹配模式
[ab] , a|b 都表示或的关系
[a-z] 任意小写
[A-Z] 任意大写
[^...] 除了...
[0-9] 任意数字
/./ 表示任意字符
量词:
设置一个内容出现的次数,只对前面的内容起作用
语法:
/a{n}/ :a正好出现 n 次
{n,m} :出现 n~m 次
/a+/ :至少一个a
/a* / :0个或多个a
/a?/ :0个或1个a
/^a/ : 以a开头
/a$/ :以a结尾
元字符:
\w 任意字母,数字,下划线
\W 除了字母,数字,下划线
\d 任意数字
\D 除了数字
\s 空格
\S 除了空格
\b 单词边界
\B 除了单词边界
//字符串和正则表达式的相关方法
split()
见下面代码解释
search()
搜索字符串中是否含有指定内容
如果搜索到指定内容则返回第一次出现的索引,没有则返回-1
可以接受正则为表达式为参数,根据正则表达式去检索字符串
match()
可以根据正则表达式从一个字符串中符合条件的提取出来
默认情况下只会返回第一个符合要求的内容,可以设置正则表达式全局匹配模式
会将符合条件的内容以数组形式返回
replace()
将字符串指定内容替换为新的内容
参数:被替换的内容 要替换的内容
代码解释
var reg = new RegExp("a","i");
console.log(reg.test("asdf")); // true
//创建一个正则表达式,检查一个字符串中是否有a或b
reg = /a|b/;
console.log(reg.test("asc")); //true
//创建一个正则表达式检查一个字符串中是否有字母
reg = /[a-z]/i;
console.log(reg.test("sdfwere")); //true
//检查一个字符创中是否含有abc 或 adc 或 aec
reg = /a[bde]c/;
//字符串和正则表达式的相关方法:
//split()
var str = "1a2b3c4d5f6";
console.log(str.split(/[a-z]/i)); //["1", "2", "3", "4", "5", "6"]
//match()
var str = "1a2b3c4d5f6";
console.log(str.match(/[a-z]/ig)); //["a", "b", "c", "d", "f"]
//replace()
console.log(str.replace(/[a-z]/ig,".")); //1.2.3.4.5
//例题
//创建一个正则表达式检查一个字符串是否是一个合法手机号
//以1开头,第二位3~9,三位以后9个任意数字
var phoneReg = /^1[3-9][0-9]{9}&/;
//去除字符串的空格
str = " er 332 ew ";
console.log(str.replace(/^\s*|\s*$/g,"")