跳到主要內容
前端開發

用 Vue 寫一個密碼強度計

使用 Vue 的 computed 製作一個簡單的密碼強度判斷。

W

這篇記錄用 Vue 做一個簡單的密碼強度判斷。

HTML

<div id="app">
  <input type="password" v-model="password">
  <p>{{ strength }}</p>
</div>

Vue

<script src="https://cdn.jsdelivr.net/npm/vue@2"></script>

<script>
  const vm = new Vue({
    el: '#app',

    data: {
      password: '',
    },

    computed: {
      strength() {
        let score = this.password.length;

        // 包含大寫 A-Z
        if (/[A-Z]/.test(this.password)) score *= 1.25;

        // 包含小寫 a-z
        if (/[a-z]/.test(this.password)) score *= 1.25;

        // 包含數字 0-9
        if (/[0-9]/.test(this.password)) score *= 1.25;

        // 包含不是大寫 A-Z、小寫 a-z、數字 0-9 的字元
        if (/[^A-Za-z0-9]/.test(this.password)) score *= 1.25;

        // 密碼夠長夠完美
        if (score > 40) return 'Perfect';

        if (score > 20) return 'Great';

        if (score > 10) return 'Good';

        return 'weak';
      },
    },
  });
</script>

2026 年後記

這篇是 2018 年留下來的 Vue 練習,當時是直接透過 CDN 引入 Vue 2,再使用 new Vue() 搭配 el 掛載到頁面上。 現在 Vue 專案的寫法已經和當年不同,Vue 3 也改成使用 createApp() 建立應用程式。 另外,這裡的密碼強度計分方式只是當時練習使用的簡單判斷,並不適合直接作為正式服務的密碼安全標準。 這篇就保留當年的寫法,作為以前的技術紀錄。

參考資料

分享這篇