笔记
js正则
test - 判断字符串是否符合规定的正则 整体匹配
rep=/\d/ 匹配一个数字
rep=/\d+/; \d 匹配一个或多个数字
rep.test("asdfdf89jfjfks") 返回true
rep.test("sdfgegdddcvvdsw") 返回false
rep=/^\d+$/ 以数字开头 数字结尾
rep.test("asdfj123opk") 返回false
rep.test("12325839") 返回true
exec - 获取匹配的数据
rep=/\d+/
str="wangshen_68_houhy_20"
rep.exec(str) 返回["68"] 默认只取第一个
\w : 数字,字母 ,下划线 0-9 a-z A-Z _
\b : 匹配边界 字符串的开头和结尾 空格的两边都是边界 => 不占用字符串位数 单词的开头和结尾以空格隔开
var text = "JavaScript is more fun than \nJavaEE or JavaBeans!";
var pattern = /\bJava\w*\b/;
pattern.exec(text); 返回["JavaScript"] 只匹配第一个
pattern = /\bJava(\w*)\b/;
pattern.exec(text) 返回["JavaScript","Script"] 只匹配第一个 二次通过分组获取后面的
pattern = /\bJava\w*\b/g; 全局匹配
pattern.exec(text) 拿到第一个 ["JavaScript"]
pattern.exec(text) 拿到第二个["JavaEE"]
pattern.exec(text) 拿到第三个["JavaBeans"]
pattern.exec(text) null 取完了
pattern.exec(text) 在执行,又从头开始了 ["JavaScript"]
var pattern=/\bJava(\w*)\b/g; 全局匹配 每取一次都分组 把匹配的结果在匹配一次
pattern.exec(text) 拿到第一个 ["JavaScrrpt","Script"]
pattern.exec(text) 拿到第二个["JavaEE","EE"]
pattern.exec(text) 拿到第三个["JavaBeans","Beans"]
pattern.exec(text) null 取完了
pattern.exec(text) 在执行,又从头开始了 ["JavaScropt","Script"]
多行匹配:
默认就是多行匹配
var text = "asddd\nJavaScript is more fun than \nJava or JavaBeans!"
var pattern=/^Java(\w*)/g
pattern.exec(text) 拿到["JavaScript","Script"]
pattern.exec(text) null
多行匹配 加了^开头的 必须用m才能获取到换行的
var pattern=/^Java(\w*)/gm
pattern.exec(text) 拿到["JavaScript","Script"]
pattern.exec(text) 拿到["Java", ""]
pattern.exec(text) 拿到["JavaBeans", "Beans"]
pattern.exec(text) 拿到pattern.exec(text)
pattern.exec(text) null
登录注册验证
默认事件先执行:checkbox (先打上勾)
自定义先执行:a submit
<a></a>
<form>
<input type='type'/>
<input type='password'/>
<input type="submit" />
</form>
$(':submit').click(function(){
$(':text,:password').each(function(){
return false; 终止循环
})
return false; 控制跳转
})
input,checkbox
---------表单验证------
1.减少数据库请求
JS:验证
$(':submit').click(function(){
$(':text,:password').each(function(){
return false; 终止循环
})
return false; 控制提交
})
后端:python实现
业务处理
s1.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<input type="checkbox"/>
<script src="jquery-1.12.4.js"></script>
<script>
$(':checkbox').click(function () {
var v= $(this).prop('checked');
console.log(v);
})
</script>
</body>
</html>
s1-1.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>注册新用户</h1>
<form action="/account/register">
<div>
<label><span>*</span>用户名:</label>
<input type="text" require="true" label="用户名" Filed="string" range="4-40" name="username" />
</div>
<div>
<label><span>*</span>手机号:</label>
<input type="text" require="true" label="手机号" mobile="true" name="telephone"/>
</div>
<div>
<label><span>*</span>登录密码:</label>
<input type="text" require="true" label="登录密码" min-len="6" name="pwd" />
</div>
<div>
<label><span>*</span>确认密码:</label>
<input type="text" require="true" label="确认密码" confirm-to="pwd" name="confirmpwd"/>
</div>
<div>
<label><span>*</span>验证码:</label>
<input type="text" require="true" label="验证码" style="width: 80px;" name="checkcode"/>
<a style="width: 125px;display: inline-block;"><img src="ll.jpg"></a>
</div>
</form>
</body>
</html>
wpq.js
/**
* Created by Administrator on 2019-06-01.
*/
$(form).find(':text,:password').each(function () {
var name=$(this).attr('name');
var label=$(this).attr('label');
var val=$(this).val();
var $parent=$(this).parent();
var required=$(this).attr('require');
if(required){
if(!val||val.trim() == ''){
flag=false;
return false
}}
var confirm_to=$(this).attr('confirm-to');
if(confirm_to){
var $original =$(form).find("input[name='"+confirm_to+"']");
if($original.val().trim()!=val.trim()){
flag=false;
return false;
}}
var mobile=$(this).attr('mobile');
if(mobile){
var reg=/^1[3|5|8]\d{9}$/;
if(!reg.test(val)){
flag=false;
return false;
}
}
var field=$(this).attr('Field');
if(field=='string'){
var reg=/^\w+$/;
if(!reg.test(val)){
flag=false;
ErrorMessage($parent,label+'只能由英文 数字及"_组成"')
return false;
}
}}
)