C#模型中波斯语字母与空格正则表达式问题求助
解决C#模型波斯语正则表达式允许空格的问题
你的正则表达式仅匹配波斯语字母,未包含空格规则,因此输入空格时会触发验证错误。只需在正则的字符集合中添加空格即可解决,以下是两种适配方案:
基础版(允许任意位置的空格,包括连续空格)
直接在字符集[]内加入空格,修改后的代码如下:
[RegularExpression(@"^[\u0622\u0627\u0628\u067E\u062A-\u062C\u0686\u062D-\u0632\u0698\u0633-\u063A\u0641\u0642\u06A9\u06AF\u0644-\u0648\u06CC ]+$", ErrorMessage = "لطفا {0} را به درستی وارد کنید")]
- 加入
@前缀避免转义字符被意外解析,提升代码稳定性 - 字符集末尾的空格允许输入中包含波斯语字母和任意数量的空格
严格版(禁止开头/结尾空格、连续空格)
如果需要更严谨的验证,确保输入首尾为波斯语字母,中间仅用单个空格分隔,可使用以下正则:
[RegularExpression(@"^[\u0622\u0627\u0628\u067E\u062A-\u062C\u0686\u062D-\u0632\u0698\u0633-\u063A\u0641\u0642\u06A9\u06AF\u0644-\u0648\u06CC]+(?: [\u0622\u0627\u0628\u067E\u062A-\u062C\u0686\u062D-\u0632\u0698\u0633-\u063A\u0641\u0642\u06A9\u06AF\u0644-\u0648\u06CC]+)*$", ErrorMessage = "لطفا {0} را به درستی وارد کنید")]
(?: ... )*表示匹配0次或多次“空格+字母块”的组合,确保空格仅作为分隔符存在
内容的提问来源于stack exchange,提问作者Ashkan Amjad
相关产品推荐
相关产品推荐

