Js笔记整理
1、StringAPI
a) 大小写转换:str.toUpperCase();str.toLowerCase();
b) 获取指定位置字符:
- Str[i]--->倒数第二个str[str.length-2]
- str.charAt(i)
- str.charCodeAt(i);返回字符的Unicode吗?
c) 查找关键字的位置:
I.var i=str.indexOf(“kword”[,starti]);如果找不到返回-1,starti默认为0
Ii var i=str.lastIndexOf(“kword”[,starti]);查找starti位置左侧第一次出现的关键字 statri默认是length-1
d) 获取子字符串:
I var subStr=str.substring(starti[,endi+1]);
Ii var subStr=str.substring(starti[,endi+1]);不支持负数参数
Iii var subStr=str.substring(starti,取几个);
例题:获取用户名和域名。
Function(){
Var i=email.indexOf(“@”);
Var userName=email.slice(0,i);
Var domain=email.slice(i+1);
Alert(“用户名”+username);
Alert(“域名”+domain);
}
<button onclick=”mail(prompt(‘输入邮箱’))”>输入邮箱<button>
2、String API 2
a) 分隔字符串:var arr=str.split(“分隔符”);
- Arr中以数组的形式保存每段字符串。
- 固定套路:将字符串切割为字符数组:var chars=str.split(“”);
- 例子: var a="hello";
var chars=a.split("");
console.log(chars);
Iii 模式匹配:2种
1.var i=str.search(/keword/i);只能从开始位置,赵第一个匹配的关键字。
2.var arr=str.match(/kword/ig);
a) arr中保存了所有关键字的内容
b) arr.length表示匹配的关键字的个数
c) *如果没找到,返回null*
d) *都要先判断是否为null,再处理!*
3.Var newStr=str.replace(模式,“替换内容”);
例题:
var kword=/no/ig;
var reply=prompt("输入回复");
var arr=reply.match(kword);
reply=reply.replace(kword,"**");
alert(reply);
alert("共替换"+(arr?arr.length:0)+"处");
2、正则表达式:
a) 专门规定字符串格式中字符格式规则的表达式。
b) 何时使用:只要定义字符串格式规则,都是用正则表达式。
c) 预定义字符集:\d ==>[0-9]一位数字
- \W ==>[0-9a-zA-Z];1位数字,字母或下划线。
- \s ==》[空字符]代表一位空字符:空格,tab符。
- . 除了换行以外,其他所有字符。
d)量词:规定一个字符集出现的次数:2种
明确数量:3种:{min,max}:最少min位,最多max位
{min,}:至少min位
{n}:必须n位
身份证号:至少15位数字
2位数字
最后一位数字或x X
后三位可有可无,但最多出现1次
\d{15}(\d{2}[0-9xX])?
不确定数量:3种:
?==>{0,1}: 可有可无,最多1次
*==>{0,}:可有可无,多了数量不限
+==>{1,}:至少一次,多了数量不限
手机号:+86或0086 可有可无,最多1次
空字符可有可无,多了数量不限
1
从3,4,5,7,8选一个
最后必须是9位数字
(\+86|0086)?\s*1[34578]\d{9}