Salutation 的数据注释

Data annotation for Salutation

如何为称呼添加数据注释?
称呼必须以 Dear Sir or Madam, Mr, Mrs, Dr 小写还是大写开头?

我尝试了以下但对我不起作用:

[RegularExpression(@"^(Dr|Mrs?|Ms)\. [A-Za-z] ([A - Za - z] (\s|\.|_)?)+[a-zA-Z]*$", ErrorMessage = "Greeting must begin with Mr., Mrs., Ms., or Dr")]

使用这样的东西:^(Mr|Mrs|Ms|Dr)\. [\p{L} '-]+$。假设姓氏可以包含字母,不一定是基本拉丁语 (\p{L})、严格意义上的空格、撇号和连字符。我没有加下划线。将来您可能需要扩展此集合。

此正则表达式假定称呼是馈送到正则表达式的所有内容(即,只有称呼受数据注释的约束)。如果检查整个字母,请将最后的 $ 替换为 \n (换行符);如果称呼前可以有地址,则将开头的 ^ 替换为 (?:^|\n)。这些换行符确保称呼占据一个单独的字符串。在这种情况下不要使用多行选项。

是用户输入的字母,允许有多余的空格:^\s*(Mr|Mrs|Ms|Dr)\.[ ]+[\p{L} '-]+$.

此外,标题后的句号可能会丢失,因此:^\s*(Mr|Mrs|Ms|Dr)\.? [ ]+[\p{L} '-]+$

您可能想要添加一个可选的结尾逗号:^\s*(Mr|Mrs|Ms|Dr)\.?[ ]+[\p{L} '-]+,?\s*$.

可能的头衔也很多,例如 Prof. 或军衔。