サーバーに必要な名前でファイルを保存するために使用される特定の文字列を検証したいと考えています。
これには、次の REGEX を使用する必要があります。^[\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 (ヘブライ語) 文字列を受け入れていません..
これを克服する方法はありますか?