• JavaScript正则表达式及jQuery回顾


    JavaScript 正则表达式,用于规定在文本中检索的内容。

    一、定义正则表达式:

    rep = /d+/;        // js定义正则。(python定义正则:re模块 rep = "d+")
    // 注:定义正则表达式也可以  reg= new RegExp()
    

      

    • /…/ 用于定义正则表达式
    • /…/g 表示全局匹配
    • /…/i 表示不区分大小写
    • /…/m 表示多行匹配

    JS正则匹配时本身就是支持多行,此处多行匹配只是影响正则表达式^和$,m模式也会使用^$来匹配换行的内容。

    > var text = "JavaScript is more fun than 
    JavaEE or JavaBeans!";
    "JavaScript is more fun than 
    JavaEE or JavaBeans!"
    > var pattern1 = /Javaw*/g;        // 无^、$,默认就是多行
    > var pattern2 = /^Javaw*/g;       // 有^、$,只匹配一行
    > var pattern = /^Javaw*/gm;       // 有^、$,多行匹配
    > result = pattern.exec(text)
    ["JavaScript"]
    > result = pattern.exec(text)
    ["JavaEE"]
    

      

    二、正则对象的方法

    有 3 个方法:test()、exec() 以及 compile()。

    1、test()

    test() 方法检索字符串中的指定值。返回值是 true 或 false。

    > rep = /d+/;
    > rep.test("name89age")  // 默认:只要内部包含就返回true
    true
    > rep = /^d+$/;		 // ^开始符号,$结束符号
    > rep.test("name89fgf")
    false
    

      

    2、exec()

    exec() 方法检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 null。

    • 非全局模式
    > var text = "JavaScript is more fun than Java or JavaBeans!";
    > var pattern = /Javaw*/;          // 默认只拿第一个
    > result = pattern.exec(text)
    ["JavaScript"]
    > var pattern = /(Java)w*/;        // () 分组匹配
    > result = pattern.exec(text)
    ["JavaScript", "Java"]
    // 注意:第一个元素是第一个匹配的结果,后面元素是正则子匹配(正则内容分组匹配)
    

      

    • 全局模式

    需要反复调用exec方法,来一个一个获取结果,直到匹配获取结果为null表示获取完毕

    var pattern = /Javaw*/g;   // 加g,反复执行exec,一个一个匹配结果
    var text = "JavaScript is more fun than Java or JavaBeans!";
    result = pattern.exec(text)  //每执行一次仅返回一个结果,不断next,直至null
    
    var pattern = /(Java)w*/g; // 分组匹配(匹配结果再匹配)
    var text = "JavaScript is more fun than Java or JavaBeans!";
    result = pattern.exec(text)
    

      

    3、compile()

    compile() 方法用于改变 正则表达式对象。

    compile() 既可以改变检索模式,也可以添加或删除第二个参数。

    例子:

    patt1 = new RegExp("e");
    patt1.test("The best things in life are free");
    patt1.compile("d");
    patt1.test("The best things in life are free");
    

      

    由于字符串中存在 “e”,而没有 “d”,以上代码的输出是:

    true
    false
    

      

    三、表单验证-示例

    1、知识点回顾

    • Dom和jQuery方式绑定事件,获取函数返回值
    <body>
        <!--Dom方式:onclick里需要加return-->
        <a onclick="return ClickOn()"  href="http://blog.csdn.net/fgf00">走你1</a>
    <!--jQuery方式:--> <a id="i1" href="http://blog.csdn.net/fgf00">走你2</a> <script src="jquery-1.12.4.js"></script> <script> // Dom方式: function ClickOn() { alert(123); return true; // true:执行后面操作,dom绑定里需要加return } // jQuery方式: $('#i1').click(function () { alert(456); return false; // false:不执行后面操作 }) </script> </body>

      

    • 事件优先级

    比如a标签等一些标签,默认就有绑定事件,再给添加一个自定义事件,哪个先执行?

    # 默认事件先执行:
        checkbox(复选框)
    # 自定义事件先执行
        a
        submit
        ...
    

      

    2、表单验证

    为了防止用户点一次,就往数据库发送一次连接请求,对于一些简单的比如文本格式、长度等,在浏览器上给拦截了,是不是就可以了。

    对一部分检测的功能,放到前端上面做,用js实现。但是要知道,浏览器上的js是可以被禁用的。

    一般情况下,对于用户的验证,前端写一套基本验证、后端也写一套完全验证,针对所有用户。

    一般情况下,对于用户的验证,前端写一套基本验证、后端也写一套完全验证,针对所有用户。

    表单认证代码示例地址

     

  • 相关阅读:
    物联网架构成长之路(11)-Redis缓存主从复制
    物联网架构成长之路(10)-Nginx负载均衡
    物联网架构成长之路(9)-双机热备Keepalived了解
    物联网架构成长之路(8)-EMQ-Hook了解、连接Kafka发送消息
    2017年年度总结
    物联网架构成长之路(7)-EMQ权限验证小结
    物联网架构成长之路(6)-EMQ权限控制
    物联网架构成长之路(5)-EMQ插件配置
    物联网架构成长之路(4)-EMQ插件创建
    物联网架构成长之路(3)-EMQ消息服务器了解
  • 原文地址:https://www.cnblogs.com/zoe233/p/8028713.html
Copyright © 2020-2023  润新知