vue+elementUI用戶修改密碼的前端驗(yàn)證規(guī)則
用戶登錄后修改密碼,密碼需要一定的驗(yàn)證規(guī)則。舊密碼后端驗(yàn)證是否正確;前端驗(yàn)證新密碼的規(guī)范性,新密碼規(guī)范為:6-16位,至少含數(shù)字/字母/特殊字符中的兩種;確認(rèn)密碼只需要驗(yàn)證與新密碼是否一致;

彈窗結(jié)構(gòu)
<el-dialog title="修改密碼"
:visible.sync="passDlgVisible"
@close="passDlgClose"
width="400px">
<el-form :model="passForm"
ref="passRef"
:rules="passRules"
hide-required-asterisk
label-width="70px"
size="small">
<el-form-item label="舊密碼" prop="oldPassword">
<el-input v-model="passForm.oldPassword" show-password></el-input>
</el-form-item>
<el-form-item label="新密碼" prop="newPassword">
<el-input v-model="passForm.newPassword" show-password></el-input>
</el-form-item>
<el-form-item label="確認(rèn)密碼" prop="confirmPassword">
<el-input v-model="passForm.confirmPassword" show-password></el-input>
</el-form-item>
</el-form>
<span slot="footer">
<el-button @click="passDlgVisible=false" size="small">取消</el-button>
<el-button @click="passSave" type="primary" size="small">確認(rèn)</el-button>
</span>
</el-dialog>form驗(yàn)證規(guī)則
passRules: {
oldPassword:[{required: true, message: '請輸入舊密碼', trigger: 'blur'}],
newPassword:[{validator: this.validNewPass, trigger: 'blur'}],
confirmPassword:[{validator: this.validConfirmPass, trigger: 'blur'}]
}驗(yàn)證函數(shù)
/**
* 驗(yàn)證新密碼
*/
validNewPass(rule, value, callback) {
let reg = /(?!^(\d+|[a-zA-Z]+|[~!@#$%^&*?]+)$)^[\w~!@#$%^&*?]{6,16}$/
if (value === '') {
callback(new Error('請輸入新密碼'));
} else if (!reg.test(value)) {
callback(new Error('6-16位,至少含數(shù)字/字母/特殊字符中的兩種'))
} else {
if (this.passForm.confirmPassword !== '') {
this.$refs.passRef.validateField('confirmPassword');
}
callback();
}
},
/**
* 驗(yàn)證確認(rèn)密碼
*/
validConfirmPass(rule, value, callback) {
if (value === '') {
callback(new Error('請?jiān)俅屋斎朊艽a'));
} else if (value !== this.passForm.newPassword) {
callback(new Error('兩次輸入密碼不一致!'));
} else {
callback();
}
}彈窗關(guān)閉后清空字段和驗(yàn)證
/**
* 彈窗關(guān)閉事件
*/
passDlgClose() {
this.passForm = {
oldPassword: '',
newPassword: '',
confirmPassword: ''
}
this.$refs.passRef.clearValidate();
}提交表單
passSave() {
this.$refs.passRef.validate((valid) => {
if (valid) {
this.passForm.userName = this.userName
api.user.editPass(this.passForm).then(res => {
this.passDlgVisible = false;
})
} else {
return false;
}
});
}這就是修改密碼的全部流程啦。。。。有問題評論區(qū)答復(fù)。。。。能解決的就答復(fù),不能解決的自己百度哈。。。。
到此這篇關(guān)于vue+elementUI用戶修改密碼的前端驗(yàn)證規(guī)則的文章就介紹到這了,更多相關(guān)vue elementUI密碼驗(yàn)證內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解vue-cli與webpack結(jié)合如何處理靜態(tài)資源
本篇文章主要介紹了詳解vue-cli與webpack結(jié)合如何處理靜態(tài)資源,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09
詳解Vue3.0 前的 TypeScript 最佳入門實(shí)踐
這篇文章主要介紹了詳解Vue3.0 前的 TypeScript 最佳入門實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06
vue點(diǎn)擊項(xiàng)目唯一id生成器nanoid的使用方式
這篇文章主要介紹了vue點(diǎn)擊項(xiàng)目唯一id生成器nanoid的使用方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05
在vue中高德地圖引入和軌跡的繪制的實(shí)現(xiàn)
這篇文章主要介紹了在vue中高德地圖引入和軌跡的繪制的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
Vue實(shí)現(xiàn)網(wǎng)頁首屏加載動畫及頁面內(nèi)請求數(shù)據(jù)加載loading效果
Loading加載動畫組件看起來很簡單不重要,實(shí)際上它是保證用戶留存的關(guān)鍵一環(huán),下面這篇文章主要給大家介紹了關(guān)于Vue實(shí)現(xiàn)網(wǎng)頁首屏加載動畫及頁面內(nèi)請求數(shù)據(jù)加載loading效果的相關(guān)資料,需要的朋友可以參考下2023-02-02
vue實(shí)現(xiàn)點(diǎn)擊出現(xiàn)操作彈出框的示例
這篇文章主要介紹了vue實(shí)現(xiàn)點(diǎn)擊出現(xiàn)操作彈出框的示例,幫助大家更好的理解和使用vue,感興趣的朋友可以了解下2020-11-11
Vue Element UI + OSS實(shí)現(xiàn)上傳文件功能
這篇文章主要為大家詳細(xì)介紹了Vue Element UI + OSS實(shí)現(xiàn)上傳文件功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07
使用vue.js在頁面內(nèi)組件監(jiān)聽scroll事件的方法
今天小編就為大家分享一篇使用vue.js在頁面內(nèi)組件監(jiān)聽scroll事件的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09

