Webサイトの登録フォームの名前と名前を一致させるために正規表現を作成しました。要件は次のとおりです。
- 最大44文字
-
または'
許容可能- 名前内に1つのスペースを使用できます
- Unicodeは必要ありません
私の表現を短くする方法はありますか?
^[a-zA-Z]{2,12}['-]?[a-zA-Z]{1,10}\s?[a-zA-Z]{2,12}['-]?[a-zA-Z]{1,10}$
名前フィールドの制限が多すぎませんか?
Webサイトの登録フォームの名前と名前を一致させるために正規表現を作成しました。要件は次のとおりです。
-
または'
許容可能私の表現を短くする方法はありますか?
^[a-zA-Z]{2,12}['-]?[a-zA-Z]{1,10}\s?[a-zA-Z]{2,12}['-]?[a-zA-Z]{1,10}$
名前フィールドの制限が多すぎませんか?
最初に正規表現を使用すると、応答は最大47文字になります:12 + 1 + 10 + 1 + 12 + 1+10。
文字、コマ、マイナス、または空白から44文字を許可するのが最善の方法だと思います。
最初の文字を強制的に文字にすることができます:
^[a-zA-Z][a-zA-Z\-'\s]{0,43}$
コードで見落とされる可能性のある名前は次のとおりです。
Jo Blow not passed
Hyoung Kyoung Wu not passed
Mike O'Neal not passed
d'Are to Beaware not passed
O Henry Smith not passed
Mathais d'Arras not passed
Martin Luther King Jr not passed
George De FunkMaster not passed
Kurtis B-Ball Basketball not passed
Ahmad el Jeffe not passed
An Ni not passed
ほぼすべての名前を処理できるこれを試すことができます
^[^- '](?=(?![A-Z]?[A-Z]))(?=(?![a-z]+[A-Z]))(?=(?!.*[A-Z][A-Z]))(?=(?!.*[- '][- ']))[A-Za-z- ']{2,}$
Jo Blow passed
Hyoung Kyoung Wu passed
Mike O'Neal passed
d'Are to Beaware passed
O Henry Smith passed
Mathais d'Arras passed
Martin Luther King Jr passed
George De FunkMaster passed
Kurtis B-Ball Basketball passed
Ahmad el Jeffe passed
An Ni passed