关于 Url 在 .net 核心实体框架 5 中使用希伯来字母字段验证的问题
Querstion regarding Url with Hebrew latters field validation in .net core entity frame work 5
我有 asp.net 核心 5.0 解决方案和 Entity Framework 核心 5,在我的模型中我有两个包含 url 字符串的字段。
我的问题是如何验证它们,因为它们可能包括希伯来语后者。
常规 [Url] 字段属性与 url 与希伯来语后者不匹配,因此向用户引发验证错误。
我也试过像这样自定义正则表达式属性:
[正则表达式(@"^((http|https|ftp)://)([\w-]+.)+[\w]+(/[\w- ./ ?%&,=~]*)?$",ErrorMessage ="请输入有效的 url!")]
它仍然不接受 url 字符串中的希伯来语后者。
我必须说,像下面这样使用正则表达式进行相同的匹配检查确实可以正常工作。
Regex rgx = new Regex(@"^((http|https|ftp)://)([\w-]+.)+[\w]+(/[\w - ./?%&,=~]*)?$");
bool isMatch = rgx.IsMatch("http://www.msomesite.net/תנאי קדםודישות הקורס.doc");
有人知道如何解决吗?
您可以尝试像这样更改 RegularExpression 中的部分:
@"^((http|https|ftp)://)([\w-]+.)+[\w]+(/[\w- ./?%&,=~90-FF]*)?$"
这是一个演示:
型号:
public class ValidationModel
{
[RegularExpression(@"^((http|https|ftp)://)([\w-]+.)+[\w]+(/[\w- ./?%&,=~90-FF]*)?$", ErrorMessage = "Please enter a valid url!")]
public string Url { get; set; }
}
浏览:
@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]*)?$"
结果:
用 http://po:rt/תנאי קדם ודריש#ות הקורס.doc
测试:
我有 asp.net 核心 5.0 解决方案和 Entity Framework 核心 5,在我的模型中我有两个包含 url 字符串的字段。
我的问题是如何验证它们,因为它们可能包括希伯来语后者。
常规 [Url] 字段属性与 url 与希伯来语后者不匹配,因此向用户引发验证错误。
我也试过像这样自定义正则表达式属性:
[正则表达式(@"^((http|https|ftp)://)([\w-]+.)+[\w]+(/[\w- ./ ?%&,=~]*)?$",ErrorMessage ="请输入有效的 url!")]
它仍然不接受 url 字符串中的希伯来语后者。
我必须说,像下面这样使用正则表达式进行相同的匹配检查确实可以正常工作。
Regex rgx = new Regex(@"^((http|https|ftp)://)([\w-]+.)+[\w]+(/[\w - ./?%&,=~]*)?$"); bool isMatch = rgx.IsMatch("http://www.msomesite.net/תנאי קדםודישות הקורס.doc");
有人知道如何解决吗?
您可以尝试像这样更改 RegularExpression 中的部分:
@"^((http|https|ftp)://)([\w-]+.)+[\w]+(/[\w- ./?%&,=~90-FF]*)?$"
这是一个演示:
型号:
public class ValidationModel
{
[RegularExpression(@"^((http|https|ftp)://)([\w-]+.)+[\w]+(/[\w- ./?%&,=~90-FF]*)?$", ErrorMessage = "Please enter a valid url!")]
public string Url { get; set; }
}
浏览:
@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]*)?$"
结果:
用 http://po:rt/תנאי קדם ודריש#ות הקורס.doc
测试: