称呼的数据注释

问题描述

如何添加用于称呼的数据注释?
问候必须以尊敬的先生或女士,先生,太太,博士以大写还是小写开头?

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

[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.或军衔。