正则表达式
1.创建正则表达式
- 正则表达式是一个对象
- 利用RegExp对象创建
var regexp = new RegExp(/123/) - 利用字面量创建
var regexp = / / - 检测输入文本是否符合正则表达式
regexpObj.test(str) ;正则表达式名字.test(输入的文本)
2.相关符号
2.1首尾元字符
- 边界符
- ^ ,以谁开始
- $ ,以谁结束
- ^ $ ,只能是里面的内容
2.2基本元字符
- 字符类[ ],只要包含其中之一就可以了,返回布尔值
- ^ [abc] $ ,只能是a或b或c
- ^ [abc] ,以a或b或c开头
- [abc] $ ,以a或b或c结尾
- ^ [abc] $ ,只能匹配a、b、c
- ^ [a-z] $ ,26个小写英文字母,多选一
- ^ [a-zA-Z0-9_-] $ ,26个英文字母(大小写),0~9,_ -,多选一
- ^ [^] $ ,取反,不能包含
2.3限定元字符
- 量词符,设定某个模式表达的次数
- *,出现0到多次
- +,出现1到多次
- ?,出现1次或0次
- {n},出现n次
- {n,},出现n到多次
- {n,m},出现n到m次
2.4特殊元字符
- 预定义类,某些方法的简写
- \d (digital):数字 [0-9]
- \D 非数字 [ ^0-9]
- \w (word):字母,数字,_ [a-zA-Z0-9_]
- \W [ ^a-zA-Z0-9_]
- \s(space):空格 [\t\r\n\v\f]
- \S [ ^\t\r\n\v\f]
2.5替换
- 字符串对象.replace(字符串|正则表达式,新字符串)
- 返回一个替换完毕的新字符串
3.用户名验证案例
var span = document.querySelector('span')
var uname = document.querySelector('.uname')
var reg = /^[a-zA-Z0-9_]{6,16}$/
uname.onblur = function(){
if(reg.test(this.value)){
span.className = ('right')
span.innerHTML = '用户名输入正确'
}else{
span.className = ('wrong')
span.innerHTML = '用户名输入错误'
}
}