js 实现简单的注册校验功能(vue)

偏执的太偏执、 2022-02-03 13:47 475阅读 0赞

做一个小练习—-注册功能的校验,校验要求为:1)用户名、密码、确认密码不能为空;

  1. 2)密码由大写字母、小写字母和数字组成且长度区间为\[8,16\]
  2. 3)确认密码应和密码一致。
  3. 不符合要求给出提示信息。

思路:通过监听输入框的blur事件来进行输入内容校验,输入不合格在相应的input后面进行提示,提示使用span标签。

实现代码:

  1. <template>
  2. <div class="container">
  3. <form action="" method="">
  4. <label>用户名: <input type="text" placeholder="请输入用户名" v-model="name" @blur="getName"><span>{
  5. {mesName}}</span></label>
  6. <label>密码: <input type="password" placeholder="请输入密码" v-model="pwd" @blur="getPwd"><span>{
  7. {mesPwd}}</span></label>
  8. <label>确认密码:<input type="password" placeholder="请再次输入密码" v-model="pwd2"><span>{
  9. {mesPwd2}}</span></label>
  10. <button @click="toLogin" @click.prevent >注册</button>
  11. </form>
  12. </div>
  13. </template>
  14. <script>
  15. export default {
  16. name: 'login',
  17. data () {
  18. return {
  19. name: '',
  20. pwd: '',
  21. pwd2: '',
  22. mesName: '', //存储用户名校验提示内容
  23. mesPwd: '', //存储密码校验提示内容
  24. mesPwd2: '', //存储确认密码校验提示内容
  25. }
  26. },
  27. methods: {
  28. // 校验用户名输入是否为空
  29. getName() {
  30. if (!this.name) {
  31. this.mesName = '用户名不能为空'
  32. } else {
  33. this.mesName = ''
  34. }
  35. },
  36. // 校验密码输入是否符合要求
  37. getPwd() {
  38. var pat = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^]{6,14}$/;
  39. if (!this.pwd) {
  40. this.mesPwd = '密码不能为空'
  41. } else if (!pat.test(this.pwd)) {
  42. this.mesPwd = '密码至少包含小写字母、大写字母和数字且长度不能低于六位'
  43. } else {
  44. this.mesPwd = ''
  45. }
  46. },
  47. // 校验确认密码是否和密码一致
  48. getPwd2() {
  49. if (!this.pwd2) {
  50. this.mesPwd2 = '请再次输入密码'
  51. } else if (this.pwd2 != this.pwd) {
  52. this.mesPwd2 = '前后密码不一致'
  53. } else {
  54. this.mesPwd2 = ''
  55. }
  56. },
  57. //点击注册按钮
  58. toLogin() {
  59. if (!this.mesName && !this.mesPwd && !this.mesPwd2) {
  60. alert("注册成功")
  61. }else {
  62. alert("请按要求填写全部信息")
  63. }
  64. }
  65. }
  66. }
  67. </script>
  68. <style scoped>
  69. .container{
  70. width: 600px;
  71. /* border: 1px solid grey; */
  72. padding: 20px;
  73. margin: 0 auto;
  74. }
  75. label {
  76. display: block;
  77. margin-bottom: 15px;
  78. }
  79. span {
  80. font-size: 12px;
  81. color: red;
  82. }
  83. button {
  84. margin-left: 100px;
  85. }
  86. </style>

发表评论

表情:
评论列表 (有 0 条评论,475人围观)

还没有评论,来说两句吧...

相关阅读