正则的概念
字符串正确的规则
作用
前端往往有大量数据效验工作,正则对象可以控制字符串的格式,从而减小服务器压力,
提高程序运行效率
正则表达式验证数据格式 前端
服务器验证数值 后端
JS的正则表达式通常都围绕着表单验证
正则对象的创建
a.构造方法
var reg = new RegExp("格式字符串",["修饰符"]);
var reg = new RegExp("a");
var reg1 = new RegExp("aaa");
test
功能:判断目标字符串是否满足正则对象的格式
参数:test(目标字符串)
返回值:boolean
console.log(reg.test("bc"));
console.log(reg1.test("abaca"));
b.字面量
var reg = /格式字符串/修饰符;
var reg = /a/;
console.log(reg.test("bca"));
console.log(reg.test("bc"));
注意事项:
什么时候用构造方法创建正则
var arr = ["heihei","haha","yingying"];
var reg = new RegExp(arr[0]);
正则的格式字符串
格式字符串:普通字符+特殊字符
普通字符:普通的字符,看起来是什么就是什么
特殊字符:拥有特殊含义的字符
a.单个字符
b.组合字符
c.各种括号
至少包含一个a
var reg = /a/
至少包含连续的5个a
reg = /aaaaa/
同时存在,同时消失
^:正则开始
$:正则结束
只能包含一个a
reg = /^a$/
只能包含3个a
reg = /^aaa$/
以b开头 至少3个a 至多5个a
reg = /^ba{3,5}$/
6个5
reg = /^5{6}$/
邮编 6位数字
reg = /^\d{6}$/
定义一个由字母或数字或下划线组成的用户名 范围在6,18之间
reg = /^\w{6,18}$/
定义一个由字母或数字或下划线组成的用户名 但是首字母不为数字
reg = /^\D\w{5,17}$/
定义一个密码 至少6位
reg = /^.{6,}$/
www.baidu.com
reg = /^www.baidu.com$/
写一个3+5
//+:{1,}
reg = /^3+5$/
以 13 或 15 开头的手机号
或的表示方法
a. (xxx|xxx|xxx)
reg = /^1(3|5)\d{9}$/
b.[x1x2x3x4]
reg = /^1[35]\d{9}$/
只能是a-f和0-6的区间
reg = /^[a-f][0-6]$/
空格
reg = /^\s$/
[\u4e00-\u9fa5] 中文字符区间
两个中文
reg = /^[\u4e00-\u9fa5]{2}$/
除了
[^x1x2x3]
reg = /^[^abc]$/
密码强弱的判断
由数字,字母,其他字符构成
纯数字,纯字母,纯其他字符为弱
全都有为强
其他情况为中
表单验证
action:发送数据的地址,也就是服务器接收数据的文件
method:数据提交的方式,与安全性和效率有关,get和post,默认为get
get:安全性低,但效率高,携带数据量小
post:安全性高,但效率低,携带数据量大
焦点验证表单
失去焦点 onblur
oInputs[0].onblur = function(){
console.log("onblur")
}
得到焦点 onfocus
oInputs[0].onfocus = function(){
console.log("onfocus")
}
正则中的相关方法和属性
正则相关的方法
test
exec
功能:返回满足正则对象的子串
参数:exec(目标字符串)
返回值:满足正则对象的子串,存储在长度为1的数组
var str = "11a22b33c44d"
修饰符
g:全局
var reg = /\d+/g
console.log(reg.exec(str)[0])
console.log(reg.exec(str)[0])
console.log(reg.exec(str)[0])
console.log(reg.exec(str)[0])
i:忽略大小写
var str = "Hello World"
var reg = /hello world/i
console.log(reg.test(str))
------------------------------------
字符串相关方法,正则对象作为参数
search方法 返回与正则表达式查找内容匹配的第一个子字符串的位置
用法:str.search(reg)
var str = "jin tian xing qi san hei hei"
var reg = /san/
console.log(str.search(reg))
match
功能:返回满足正则的子串,存储在数组中
参数:match(正则对象)
返回值:满足正则的子串数组
var str = "11a22b33c44d"
var reg = /\d+/g
console.log(str.match(reg))
replace
replace(参数1正则对象,参数2):用参数2,替换参数1,返回被替换的字符串
var str = "xizhiqiang de ge bi shi xizhiqiang"
str = str.replace(/xizhiqiang/g,"老王")
console.log(str)