Closed1

passwordの正規表現

スジ彫りのマサスジ彫りのマサ

少なくとも[A-Z]を1文字以上含む書き方

const reg = ^(?=.*[A-Z])[A-Z]$

(?=.*[A-Z])

A~Zを1文字以上含む

[A-Z]

入力可能な値の範囲

文字、数字、色んな記号を含める範囲の書き方

[a-zA-Z0-9!?_+*'"`#$%&\-^\\@;:,./=~|[\](){}<>]

空白の許容

[\s]

長いとこんな感じ

const reg = /^(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[0-9])(?=.*?[!?_+*'"`#$%&\-^\\@;:,./=~|[\](){}<>])[a-zA-Z0-9!?_+*'"`#$%&\-^\\@;:,./=~|[\](){}<>]+$/

vee-validateライブラリでルールを規定する場合

import { extend } from 'vee-validate'

const password = {
  validate(value: string) {
    const reg = /^(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[0-9])(?=.*?[!?_+*'"`#$%&\-^\\@;:,./=~|[\](){}<>])[a-zA-Z0-9!?_+*'"`#$%&\-^\\@;:,./=~|[\](){}<>]+$/
    return reg.test(value)
  },
  message: '英小文字、英大文字、数字、記号の組み合わせで入力してください。',
}
extend('password', password)

vueでの適用例

<ValidationProvider
  v-slot="{ errors }"
  rules="required|password|min:8|max:99"
>
  <v-text-field
    v-model="password"
    type="password"
    label="パスワード"
    :error-messages="errors"
  />
</ValidationProvider>
このスクラップは2023/02/14にクローズされました