我想验证一个给定的字符串,该字符串将用于在服务器中保存具有所需名称的文件。
这需要我使用以下正则表达式:^[\p\w\-. ]+$
它很好用,但仅适用于英文字符串。
所以我已经像这样修改了它^[\p{L}\w\-. ]+$
,{L}
修改器设置为接受任何 Unicode 字符。
这是视图模型。
[Required(ErrorMessageResourceType = typeof(FilesRepositoryStrings), ErrorMessageResourceName = "EnterTheNamePlease")]
[Display(ResourceType = typeof(FilesRepositoryStrings), Name = "FileNameInputLabel")]
[RegularExpression(@"^[\p{L}\w\-. ]+$", ErrorMessage = @"The file name can only contain letters, numbers and characters -_.")]
public string FileName { get; set; }
这是 html 渲染
<input class="form-control" data-val="true"
data-val-regex="The file name can only contain letters, numbers and characters -_."
data-val-regex-pattern="^[\p{L}\w\-. ]+$"
data-val-required="הזן את השם בבקשה"
id="UploadFileModel_FileName"
name="UploadFileModel.FileName"
onkeyup="$('#EnterTheNamePlease').attr('hidden', true);"
type="text" value=""
aria-required="true" aria-invalid="true">
但客户端验证不接受任何 Unicode(希伯来语)字符串..
有什么办法可以克服这个吗?