js正则表达式

笔记

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 _
 : 匹配边界 字符串的开头和结尾 空格的两边都是边界 => 不占用字符串位数 单词的开头和结尾以空格隔开
var text = "JavaScript is more fun than JavaEE or JavaBeans!";
var pattern = /Javaw*/;
pattern.exec(text);  返回["JavaScript"]  只匹配第一个

 pattern = /Java(w*)/;
 pattern.exec(text)  返回["JavaScript","Script"]  只匹配第一个 二次通过分组获取后面的


 pattern = /Javaw*/g;  全局匹配
 pattern.exec(text)  拿到第一个 ["JavaScript"]
 pattern.exec(text)   拿到第二个["JavaEE"]
 pattern.exec(text)   拿到第三个["JavaBeans"]
 pattern.exec(text)   null   取完了
 pattern.exec(text)  在执行,又从头开始了 ["JavaScript"]

 var pattern=/Java(w*)/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 JavaScript is more fun than Java 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;
            }
        }}
)

原文地址:https://www.cnblogs.com/leiwenbin627/p/10964540.html