重拾MVC——第二天:Vue学习与即时密码格式验证

今天是复习MVC的第二天,准备自己写一个后台管理,然后慢慢写大,做全。

个人感觉做 Web 的,前端知识是必备的,所有今天学习了一下 Vue,很多人用这个,我以前没有用过,今天把它补起来。

比较了各个学习 Vue 的地方,感觉官方文档讲得很详细,推荐一个学习的网站,将 Vue 讲的很清楚:http://how2j.cn/k/vuejs/vuejs-start/1744.html

这个网站主要是学 Java 的,不过 Java 部分我还没怎么看,只是大致浏览了一下前端部分,感觉很不错,站主很用心。

不多说,直接上代码:

<body>
    <div class="box">
        <div id="header">
            <h1>LOGIN</h1>
        </div>
        <form id="adminform">
            <div class="group">
                <input class="inputMaterial" type="text" v-model="usercode" required>
                <span class="highlight"></span>
                <span class="bar"></span>
                <label>Usercode</label>
            </div>
            <div class="group">
                <input class="inputMaterial" type="password" v-model="password" required>
                <span class="highlight"></span>
                <span class="bar"></span>
                <label>Password</label>
                <p class="vm_message"> {{ passwordVerification }}</p>
            </div>
            <button id="buttonlogintoregister" v-on:click=‘btnLogin‘>Login</button>
        </form>
        <div id="footer-box"><p class="footer-text">Not a member?<span class="sign-up"> Sign up now</span></p></div>
    </div>
    <script type="text/javascript">
        var data = {usercode:"",password:"",message:""}

        var vm = new Vue({
            el: "#adminform",
            //data: {
            //    usercode: ‘‘,
            //    password: ‘‘,
            //},
            data: data,
            computed: {
                passwordVerification() {//动态验证
                    //6-12位,包含大写字母,小写字母、数字和下划线
                    //var reg = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{6,12}$/;

                    //6-12位,至少包括一个大写字母、一个小写字母、一个数字、不能有特殊字符
                    var reg = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?!.*?[#[email protected]@$%^&*-]).{6,12}$/;
                    if (data.password == "")
                        return "";
                    else if (!reg.test(data.password))
                        return message = "6-12位,包含大小写字母\数字,不能有特殊字符";
                },
            },
            methods: {
            },
        })

    </script>
</body>

  第一步,引用 Vue,我是下载到本地了的;

  第二步,我这里动态获取 password ,所以我定义了个 data:

var data = {usercode:"",password:"",message:""}

  然后 new Vue 里面获取了 form 表单:

el: "#adminform",

  因为默认 input 是空,所以直接利用利用 v-model 与 data中的初始数据进行绑定,随着输入框的变化,data 中的数据也会发生变化,所以直接在 computed 中进行动态验证:

passwordVerification() {//动态验证
                    //6-12位,包含大写字母,小写字母、数字和下划线
                    //var reg = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{6,12}$/;

                    //6-12位,至少包括一个大写字母、一个小写字母、一个数字、不能有除开特殊字符
                    var reg = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?!.*?[#[email protected]@$%^&*-]).{6,12}$/;
                    if (data.password == "")
                        return "";
                    else if (!reg.test(data.password))
                        return message = "6-12位,包含大小写字母\数字,不能有特殊字符";
                },

  这里我用的正则表达式来进行密码格式校验,让密码在6-12位中,且至少包括一个大写字母、一个小写字母、一个数字、不能有特殊字符

  根据判断会返回不同的值进行显示,可以把这里的判断写复杂一点。

  总结:今天主要就是去复习前端知识了,除了学习了一手 Vue 外,还回顾了一下 HTML DOM。感觉自己进度不够快,毕竟是边学边用,稳一点好。

原文地址:https://www.cnblogs.com/Soaring-Free/p/11178942.html

时间: 2024-10-09 16:34:09

重拾MVC——第二天:Vue学习与即时密码格式验证的相关文章

重拾单片机 第二天 数码管的使用 (动态扫描数码管)

我们要实现的功能是什么呢? 从 第一个数码管扫描 1 到第二个数码管 2 ,第三个数码管 3,.......一直到 第8个数码管 显示8 1 /*--------------www.szjcdz.cn-------------------- 2 名称:数码管动态扫描 3 编写:shenhui 4 日期:2015.10.28 5 内容:数码管动态扫描 6 ------------------------------------------------*/ 7 #include<reg52.h>

重拾单片机 第二天 数码管的使用 ( 按下加按键,数值增加直到最大值,按减按键,数值减小,直到最小值 )

1. 1 /*--------------www.szjcdz.cn-------------------- 2 名称:2按键加减操作 3 编写:szjcdz 4 日期:2010.9 5 内容:按下加按键,数值增加直到最大值,按减按键,数值减小,直到最小值 6 ------------------------------------------------*/ 7 #include<reg52.h> 8 #define uchar8 unsigned char 9 #define uint16

使用JWT和Spring Security保护REST API,重拾后端之Spring Boot

通常情况下,把API直接暴露出去是风险很大的,不说别的,直接被机器***就喝一壶的.那么一般来说,对API要划分出一定的权限级别,然后做一个用户的鉴权,依据鉴权结果给予用户开放对应的API.目前,比较主流的方案有几种: 用户名和密码鉴权,使用Session保存用户鉴权结果.使用OAuth进行鉴权(其实OAuth也是一种基于Token的鉴权,只是没有规定Token的生成方式)自行采用Token进行鉴权第一种就不介绍了,由于依赖Session来维护状态,也不太适合移动时代,新的项目就不要采用了.第二

Vue学习笔记入门篇——组件的内容分发(slot)

本文为转载,原文:Vue学习笔记入门篇--组件的内容分发(slot) 介绍 为了让组件可以组合,我们需要一种方式来混合父组件的内容与子组件自己的模板.这个过程被称为 内容分发 (或 "transclusion" 如果你熟悉 Angular).Vue.js 实现了一个内容分发 API,使用特殊的 'slot' 元素作为原始内容的插槽. 编译作用域 在深入内容分发 API 之前,我们先明确内容在哪个作用域里编译.假定模板为: <child-component> {{ messa

重拾linux

重拾linux 起因 因为想重拾起linux,同时需要用docker起几个镜像,用来学习网络知识.本来想直接去阿里云上买,后来一想自己机器上,起一个linux是个不错的选择,毕竟不花钱! 还可以用来做本地测试,学习使用linux.docker等.记录下过程,防止以后忘记!(所以不会涉及具体的安装步骤) 下载 到网易开源镜像站,挑选一个linux下载.我安装linux只要是为了学习运维方面的知识,同时用于进行网络知识方面的实践.如果你跟我一样,推荐Ubuntu server版本,纯字符界面,就跟一

Vue学习笔记进阶篇——Render函数

本文为转载,原文:Vue学习笔记进阶篇--Render函数 基础 Vue 推荐在绝大多数情况下使用 template 来创建你的 HTML.然而在一些场景中,你真的需要 JavaScript 的完全编程的能力,这就是 render 函数,它比 template 更接近编译器. <h1> <a name="hello-world" href="#hello-world"> Hello world! </a> </h1>

重拾算法(5)——最小生成树的两种算法及其对比测试

重拾算法(5)——最小生成树的两种算法及其对比测试 什么是最小生成树 求解最小生成树(Minimum Cost Spanning Tree,以下简写做MST)是图相关的算法中常见的一个,用于解决类似如下的问题: 假设要在N个城市之间建立通信联络网,那么连通N个城市只需N-1条线路.这时自然会考虑这样一个问题:如何在最节省经费的前提下建立这个通信网. 在任意两个城市间都可以设置一条线路,相应地都要付出一定的经济代价.N个城市之间最多可能设置N(N-1)/2条线路,那么如何在这些线路中选择N-1条,

[java]基础重拾

7.17 重新学习了包管理 对于没有使用package打包的类,归到默认包.使用其他包名打包类,必须在工程文件夹下新建对应包名的目录.比如 package com.tencent.demo 则需要在工程文件夹下,新建名为com的文件夹,并在com文件夹下新建tencent文件夹,再简历demo文件夹,依次类推. [java]基础重拾

Vue学习笔记进阶篇——多元素及多组件过渡

本文为转载,原文:Vue学习笔记进阶篇--多元素及多组件过渡 多元素的过渡 对于原生标签可以使用 v-if/v-else.但是有一点需要注意: 当有相同标签名的元素切换时,需要通过 key 特性设置唯一的值来标记以让 Vue 区分它们,否则 Vue 为了效率只会替换相同标签内部的内容.即使在技术上没有必要,给在 <transition> 组件中的多个元素设置 key 是一个更好的实践. 示例: <transition> <button v-if="isEditing