文字で始まり、文字列にスペースや数字を含めることができる名前の正規表現を作成しようとしています。
現在、私は使用して^(?=.*[a-zA-Z].*)([a-zA-Z0-9' ]{1,50})$
います。
しかし、「1125151asdgvhavdg」のような文字列を受け入れています。つまり、最初に数字を取ります。
私の文字列は次のようになります
ads564564545456 fdsf78
単純な:
^([a-zA-Z][a-zA-Z0-9' ]{0,49})$
ここではアサーションは必要ありません
永遠に Ascii 文字のみが一致するかどうか 100% 確信が持てない場合は、文字などの Unicode プロパティを確認する必要があります\p{L}
。
\p{L}
あらゆる言語のあらゆる種類の手紙。
または、特定の言語に必要な文字を収集するUnicode スクリプト。
したがって、正規表現は次のようになります。
^\p{L}[\p{L}\p{Nd}' ]{0,49}$
0-9
また、プロパティ\p{Nd}
(表意文字を除くすべてのスクリプトの 0 から 9 までの数字)にも置き換えました。
次のコードを使用できます。
^([a-zA-Z\s][a-zA-Z0-9]{1,50})$
この正規表現は文字で始まり、スペースと数字を使用できます。