最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue3生成隨機(jī)密碼的示例代碼

 更新時(shí)間:2022年06月20日 10:22:58   作者:Ayanokouji  
本文主要介紹了vue3生成隨機(jī)密碼的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

實(shí)現(xiàn)效果

實(shí)現(xiàn)思路

  • 完成布局
  • 完成生成隨機(jī)數(shù)的方法
  • 完成生成隨機(jī)密碼的方法

完成布局

布局直接用element-plus組件庫里的el-from+checkbox完成一個(gè)簡單的表單布局即可。

完成生成隨機(jī)數(shù)的方法

這里我們要四種隨機(jī)數(shù),大寫字母、小寫字母、數(shù)字、特殊符號。這里實(shí)現(xiàn)有兩種方式。

第一種直接定義四個(gè)字符串,第一個(gè)字符串存所有的大寫字母、第二個(gè)字符串存所有的小寫字母、第三個(gè)所有的數(shù)字、第四個(gè)所有的特殊符號。

第二種使用Unicode編碼。將隨機(jī)數(shù)對應(yīng)大寫字母、小寫字母、數(shù)字Unicode編碼的范圍取出對應(yīng)的結(jié)果。 大寫字母是65-90、小寫字母是97-122,數(shù)字是48-57。

這兩種都要使用Math.floor(Math.random()) 獲取隨機(jī)數(shù)。我這里用第二種方法

完成生成隨機(jī)密碼的方法

定義一個(gè)數(shù)組對象。每個(gè)對象有funcName:對應(yīng)隨機(jī)數(shù)方法名,label:左側(cè)標(biāo)簽名,checked:選中狀態(tài)。循環(huán)密碼長度,每次增加選擇密碼種類數(shù)量,遍歷定義的數(shù)組對象,判斷是否是選中狀態(tài),如果是調(diào)用該種類的隨機(jī)方法,每次將返回的值拼接。循環(huán)完隨機(jī)密碼生成成功。

部分代碼

<script>      
import { reactive, toRefs  } from "vue";
export default {
  components: {},
  setup() {
    const state = reactive({
      form: {
        padLength: 8
      },
      typeList: [
      {
        id: 1,
        funcName:'IsUpper',
        label: '包括大寫字母',
        checked: true
      },
      {
        id: 2,
        funcName:'IsLower',
        label: '包括小寫字母',
        checked: true
      },
      {
        id: 3,
        funcName:'Isnumber',
        label: '包括數(shù)字',
        checked: true
      },
      {
          id: 4,
          funcName:'IsCharacter',
          label:'包括符號',
          checked: true
      }
      ],
      password: ''
    });
    const getRandomLower = () => {
      return String.fromCharCode(Math.floor(Math.random() * 26) + 97)
    }
    const getRandomUpper = () => {
       return String.fromCharCode(Math.floor(Math.random() * 26) + 65)
    }
    const getRandomNumber = () => {
      return String.fromCharCode(Math.floor(Math.random() * 10) + 48)
    }
    const getRandomCharacter = () => {
      const characters = '!@#$%^&*(){}[]=<>/,.'
      return characters[Math.floor(Math.random() * characters.length)]
    }
    let randomFunc =  {
      IsUpper: getRandomUpper,
      IsLower: getRandomLower,
      Isnumber: getRandomNumber,
      IsCharacter: getRandomCharacter
    }
    const getPassword = () => {
      state.password = ''
      let typesCount = 0
      state.typeList.forEach(v=>{
        typesCount += v.checked
      })
      if(typesCount === 0) {
          state.password = ''
      }

    for(let i = 0; i < state.form.padLength; i += typesCount) {
        state.typeList.forEach(item => {
          if(item.checked){
            state.password += randomFunc[item.funcName]()
          } 
        })
    }

  }

    return {
      ...toRefs(state),
      getRandomLower,
      getRandomUpper,
      getRandomNumber,
      getRandomCharacter,
      getPassword
    };
  },
};
</script>

總結(jié)

  • Math.floor、Math.random生成隨機(jī)數(shù)的使用
  • unicode編碼、String.fromCharCode方法的使用

到此這篇關(guān)于vue3生成隨機(jī)密碼的示例代碼的文章就介紹到這了,更多相關(guān)vue3生成隨機(jī)密碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue + gojs 實(shí)現(xiàn)拖拽流程圖效果

    vue + gojs 實(shí)現(xiàn)拖拽流程圖效果

    最近一段時(shí)間在研究go.js,它是一款前端開發(fā)畫流程圖的一個(gè)插件,也是一個(gè)難點(diǎn),要說為什么是難點(diǎn),首先,它是依賴畫布canvas知識開發(fā),這篇文章主要介紹了vue + gojs 實(shí)現(xiàn)拖拽流程圖,需要的朋友可以參考下
    2023-03-03
  • vue-axios的使用以及axios請求賦值為空的問題

    vue-axios的使用以及axios請求賦值為空的問題

    這篇文章主要介紹了vue-axios的使用以及axios請求賦值為空的問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • vue 實(shí)現(xiàn)setInterval 創(chuàng)建和銷毀實(shí)例

    vue 實(shí)現(xiàn)setInterval 創(chuàng)建和銷毀實(shí)例

    這篇文章主要介紹了vue 實(shí)現(xiàn)setInterval 創(chuàng)建和銷毀實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • vue同一個(gè)瀏覽器登錄不同賬號數(shù)據(jù)覆蓋問題解決方案

    vue同一個(gè)瀏覽器登錄不同賬號數(shù)據(jù)覆蓋問題解決方案

    同一個(gè)瀏覽器登錄不同賬號session一致,這就導(dǎo)致后面登錄的用戶數(shù)據(jù)會把前面登錄的用戶數(shù)據(jù)覆蓋掉,這個(gè)問題很常見,當(dāng)前我這邊解決的就是同一個(gè)瀏覽器不同窗口只能登錄一個(gè)用戶,對vue同一個(gè)瀏覽器登錄不同賬號數(shù)據(jù)覆蓋問題解決方法感興趣的朋友一起看看吧
    2024-01-01
  • 超實(shí)用vue中組件間通信的6種方式(最新推薦)

    超實(shí)用vue中組件間通信的6種方式(最新推薦)

    組件是 vue.js最強(qiáng)大的功能之一,而組件實(shí)例的作用域是相互獨(dú)立的,這就意味著不同組件之間的數(shù)據(jù)無法相互進(jìn)行直接的引用,所以組件間的相互通信是非常重要的,這篇文章主要介紹了vue中組件間通信的6種方式,需要的朋友可以參考下
    2022-11-11
  • Vue.js 遞歸組件實(shí)現(xiàn)樹形菜單(實(shí)例分享)

    Vue.js 遞歸組件實(shí)現(xiàn)樹形菜單(實(shí)例分享)

    本文主要對介紹利用Vue.js 的遞歸組件,實(shí)現(xiàn)了一個(gè)最基本的樹形菜單。具有很好的參考價(jià)值,下面就跟著小編一起來看下吧
    2016-12-12
  • Vue自動生成組件示例總結(jié)

    Vue自動生成組件示例總結(jié)

    在Vue中,我們可以使用unplugin-generate-component-name插件自動基于目錄名稱生成組件名稱,這個(gè)插件使得在大型代碼庫中找到和管理組件更加容易和直觀,這篇文章主要介紹了Vue自動生成組件示例總結(jié),需要的朋友可以參考下
    2023-12-12
  • 詳解element-ui設(shè)置下拉選擇切換必填和非必填

    詳解element-ui設(shè)置下拉選擇切換必填和非必填

    這篇文章主要介紹了詳解element-ui設(shè)置下拉選擇切換必填和非必填,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • vue中的循環(huán)對象屬性和屬性值用法

    vue中的循環(huán)對象屬性和屬性值用法

    這篇文章主要介紹了vue中的循環(huán)對象屬性和屬性值用法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • element-ui el-dialog嵌套table組件,ref問題及解決

    element-ui el-dialog嵌套table組件,ref問題及解決

    這篇文章主要介紹了element-ui el-dialog嵌套table組件,ref問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02

最新評論

河池市| 郎溪县| 大足县| 乐都县| 额济纳旗| 化州市| 肥城市| 方正县| 呼和浩特市| 平顺县| 霞浦县| 扶沟县| 桃园县| 兴安县| 康保县| 抚宁县| 蕉岭县| 三江| 城口县| 海阳市| 阜城县| 宁河县| 敦煌市| 姚安县| 皋兰县| 清河县| 加查县| 嘉峪关市| 临安市| 桑日县| 会昌县| 焉耆| 阳朔县| 阳山县| 安徽省| 加查县| 阿荣旗| 淮滨县| 伊宁市| 武汉市| 文安县|