validation - 关于 .net 核心实体框架 5 中带有希伯来语后者字段验证的 Url 的问题
问题描述
我有 Entity Framework Core 5 的 asp.net core 5.0 解决方案,在我的模型中,我有两个包含 url 字符串的字段。
我的问题是如何验证它们,因为它们可能包括希伯来语后者。
常规 [Url] 字段属性与带有希伯来语后者的 url 不匹配,因此向用户提出验证错误。
我也尝试了这样的自定义正则表达式属性:
[正则表达式(@"^((http|https|ftp)://)([\w-]+.)+[\w]+(/[\w-./?%&,=~]*) ?$",ErrorMessage ="请输入有效的网址!")]
它仍然不接受 url 字符串中的希伯来语后者。
我必须说,使用如下所示的正则表达式进行相同的匹配检查确实可以正常工作。
正则表达式 rgx = new Regex(@"^((http|https|ftp)://)([\w-]+.)+[\w]+(/[\w- ./?%&,=~ ]*)?$"); bool isMatch = rgx.IsMatch("http://www.msomesite.net/תנאי קדם ודרישות הקורס.doc");
有人知道如何解决它吗?
解决方案
您可以尝试像这样在正则表达式中更改您的部分:
@"^((http|https|ftp)://)([\w-]+.)+[\w]+(/[\w- ./?%&,=~\0590-\05FF]*)?$"
这是一个演示:
模型:
public class ValidationModel
{
[RegularExpression(@"^((http|https|ftp)://)([\w-]+.)+[\w]+(/[\w- ./?%&,=~\0590-\05FF]*)?$", ErrorMessage = "Please enter a valid url!")]
public string Url { get; set; }
}
查看:</p>
@model ValidationModel
<form method="post">
<div class="form-group">
<label asp-for="Url" class="control-label"></label>
<input asp-for="Url" class="form-control" />
<span asp-validation-for="Url" class="text-danger"></span>
</div>
<input type="submit" value="submit" />
</form>
<script src="~/lib/jquery-validation/dist/jquery.validate.min.js"></script>
<script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"></script>
更新:
如果您想在 Regex 和 RegularExpression 属性中使用它,请尝试使用:
@"^((http|https|ftp)://)([\w-]+.)+[\w]+(/[\w- ./?%&,=~\u0590-\u05fe]*)?$"
推荐阅读
- wpf - 在 wpf 中打印诸如超市账单之类的账单
- python - 检查 Groupby 对象 Pandas 中系列的唯一性
- mysql - 在 Windows 上安装 LuaSql-MySql 驱动程序
- graphviz - Graphiz 边缘变得疯狂
- pandas - 作业有助于对以相同的三个字母开头并且跨列具有相同值的列名的行进行分类?
- wordpress - Wordpress 插件:父类别切换器 - 将操作添加到帖子屏幕批量编辑
- python - 如何在python中获取维基百科谈话页面中的内容
- typescript - 在 Typescript 中的类中导出函数
- angular - Angular - 从不同的包中导入模块的问题
- bash - 您将如何创建终端别名来实时查看最新的日志文件更新?