一篇解决Element ui密码框眼睛图标明文密文,不允许中文输入以及输入的各种校验

19 篇文章 0 订阅
14 篇文章 0 订阅

 先上效果,再上代码,后面有说明

 

 

代码我已经做到让你们复制粘贴就能用

 

HTML

   

<el-form-item label="新密码" prop="cpPassword" style="margin-left: 13px;">
      <el-input v-model="supplierEx.cpPassword" :type="pwdType2" placeholder="请输入密码" @keyup.enter.native="login">
         <i slot="suffix" class="el-icon-view" @click="showPwd2"></i>
      </el-input>
   </el-form-item>

   <el-form-item label="确认密码" prop="cpConformPassword">
      <el-input v-model="supplierEx.cpConformPassword" :type="pwdType3" :placeholder="supplierEx.cpConformPassword" @keyup.enter.native="login">
         <i slot="suffix" class="el-icon-view" @click="showPwd3"></i>
      </el-input>
   </el-form-item>
   <el-form-item>
      <div class="rightArea" style="display: flex;margin-left: 62px;line-height: 40px;align-items: center;">
         <div class="margin_top10">
            <el-button type="primary" @click="submitForm('supplierEx')" style="background: #ED8413;border: #ED8413">确认</el-button>
         </div>
      </div>
   </el-form-item>
</el-form>

JS

  data: function () {

           var checkData1= (rule, value, callback)=> {
                if (value) {
                    if (/[\u4E00-\u9FA5]/g.test(value)) {
                        callback(new Error(isEnlish?'Password cannot enter Chinese characters':'密码不能输入汉字!'));
                    } else {
                        callback();
                    }
                }
                callback();
            }
            var checkData2= (rule, value, callback)=> {
                if (value) {
                    if (/[\u4E00-\u9FA5]/g.test(value)) {
                        callback(new Error(isEnlish?'Password cannot enter Chinese characters':'密码不能输入汉字!'));
                    } else {
                        callback();
                    }
                }
                callback();
            }

            var validate2 = (rule, value, callback) => {
                if (value === '') {

                    callback(new Error(isEnlish?'Please enter the password again':'请再次输入密码'))
                } else if (value !== this.supplierEx.cpPassword) {
                    callback(new Error(isEnlish?'The two passwords are not consistent':'两次输入密码不一致!'))
                } else {
                    callback()
                }
            }

            return {
                pwdType1:'password',
                pwdType2:'password',
                pwdType3:'password',
                supplierEx: {
//             以下
                    cpOldPassword: '',
                    cpPassword: '',
                    cpConformPassword:'',
                    pwdType: ''
                },
                value3: [new Date(2000, 10, 10, 10, 10), new Date(2000, 10, 11, 10, 10)],
                value4: '',
                rules: {
                    cpOldPassword: [
                        { required: true, validator: checkData1, trigger: 'blur' },
                        { min: 6, max: 20, message: '密码长度6-20个字符', trigger: 'blur' }
                    ],
                    cpPassword: [
                        { required: true, validator: checkData2, trigger: 'blur' },
                        { min: 6, max: 20, message: '密码长度6-20个字符', trigger: 'blur' }
                    ],
                    cpConformPassword: [
                        { required: true, validator: validate2, trigger: 'blur' },
                        { min: 6, max: 20, message: '密码长度6-20个字符', trigger: 'blur' }
                    ],
                }
            };
        },
methods: {
showPwd3 () {
    this.pwdType3 === 'password' ? this.pwdType3 = '' : this.pwdType3 = 'password';
    let e = document.getElementsByClassName('el-icon-view')[2];
    this.pwdType3 == '' ? e.setAttribute('style', 'color: #409EFF') : e.setAttribute('style', 'color: #c0c4cc');
},

},

 

思路:

眼睛图标处理

1:密码的明文和密文展示通过@click="showPwd3" ,判断pwdType3后设置ico图标颜色

输入内容的校验

2:表单必须加入 :rules="rules" ,在html中或者data中加入 rules: {},其中内部内容的配置关键在于 validator: checkData1这个地方再次将校验逻辑指向var checkData1=处的处理,从而达到更加复杂的处理,实现项目需求

 

 

 

 

 

下面是一个使用 PyCharm 实现随机输入一段明文密文,并进行凯撒密码加密解密的 Python 代码示例: ```python import random def caesar_cipher(text, shift, action): """ 实现凯撒密码加密解密 :param text: 要加密或解密的文本 :param shift: 移位数 :param action: 加密或解密操作,取值为 "encrypt" 或 "decrypt" :return: 加密或解密后的文本 """ result = "" for char in text: if char.isalpha(): if char.isupper(): result += chr((ord(char) - 65 + shift if action == "encrypt" else ord(char) - 65 - shift) % 26 + 65) else: result += chr((ord(char) - 97 + shift if action == "encrypt" else ord(char) - 97 - shift) % 26 + 97) else: result += char return result # 随机生成一段文本 text = "" for i in range(random.randint(10, 20)): text += chr(random.randint(97, 122)) # 随机生成一个移位数 shift_amount = random.randint(1, 25) # 随机选择加密或解密操作 if random.choice([True, False]): action = "encrypt" encrypted_text = caesar_cipher(text, shift_amount, action) print("明文:", text) print("加密后的文本:", encrypted_text) else: action = "decrypt" decrypted_text = caesar_cipher(text, shift_amount, action) print("密文:", text) print("解密后的文本:", decrypted_text) ``` 在上面的代码中,首先使用了 `random` 模块随机生成了一段文本和移位数,然后随机选择加密或解密操作。如果选择加密操作,则调用 `caesar_cipher()` 函数对随机生成的文本进行加密,并输出明文和加密后的文本;如果选择解密操作,则对随机生成的密文进行解密,并输出密文和解密后的文本。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值