JavaScript(六)
一、正则表达式:
1、每个字符集只能匹配一个字符
2、备选字符集中至少有一个匹配上
ex:[a-zA-Z0-9]所有的应为字母和数字
[\u4e00-\u9fa5]一个汉字
特殊:除了xxx以外[^xxx]
3、预定义字符集:
\w 一位字母数字或_
\d 一位数字 digital 数位
\s 一位空字符: 一切看不见的字符(空格 tab…)
. 一位任意字符
\W 查找非单词字符(英文字母、数字 、_)
量词:规定符合复返的字符出现的次数 用于字符的后面
边界
1、有明确边界
字符集{2,3} 必须最少出现2次,最多出现3次
字符集{2,} 必须最少出现2次,多了不限制
字符集{3} 必须出现3次
2、没有边界的数量
可有可无,最多一次 字符集?
可有可无,多了不限制 字符集*
至少出现一次 字符集+ --> 字符集{1}
API
test
test() 是一个正则表达式方法。
它通过模式来搜索字符串,然后根据结果返回 true 或 false。
下面的例子搜索字符串中的字符 “e”:
function checkPwd(){
var reg = /^\d{6}$/;
while(!reg.test(prompt(“输入密码:”))){
alert(“密码格式不对!”);
}
document.write(“验证通过!”);
}
exec
// 查找关键词,匹配内容同时找到关键词的所在位置
// 返回值:本次找到的一个关键词及其位置
// arr[0] 关键词的内容
// 如果正则有分组:
arr[n] 自动保存第n个分组匹配的子内容
arr[‘index’] 当前关键词的位置 arr.index
如果没有找到,返回null
var s = “dio dio oula oula oula muda muda muda”;
var r = /(o)(l)/ig; //全局匹配ol
// 每次查找后,都将reg.lastIndex属性修改为当前index+关键词的长度 前提条件是 必须是全局匹配
二、Error
处理错误:哪怕 程序发生了错误,也要保证程序不中断的一种机制
Error基本格式:
try {
// 可能发生错误的代码
} catch(e) {// 仅在发生错误的时候执行
// 错误处理代码
// 1.提示用户错误信息 console.log(e);
// 2.日志中进行记录
} finally {
// 无论错误是否发生,都必须执行的代码
// 比如:释放资源
}
err:Error对象 发生错误的时候,自动创建,保存错误信息的对象
*错误类型 6 种:
1、TypeError 类型错误
2、SyntaxError 语法错误
3、RangeError 参数范围越界
4、ReferenceError 引用错误(找不到对象) 变量没有定义就使用
5、EvalError 不常见
6、URIError 不常见
效率问题:放在try…效率要低 可预见的错误,都可以用if…else来代替 try…
无法预料的使用try…catch
主动抛出错误:throw new Error(“错误消息”)