小编The*_*eek的帖子

.Net RegularExpressionValidator与Regex类的匹配方式不同

当我使用.Net RegularExpressionsValidator控件时,Validation表达式匹配EXACT文本.当我这样说时,我的意思是,对于我给它验证的字符串,如果它偏离正则表达式模式,则所有字符串都不会验证.

例如:(([0-1] [0-9])|([2] [0-3])):( [0-5] [0-9])如果在RegularExpressionsValidator控件中给出,则只匹配字符串喜欢 - > 12:00,07:15,23:59但不匹配字符串12:00foo,bar23:00,foobar.

现在,当我在后面的代码中使用Regex类并给它相同的正则表达式时,它匹配包含匹配和任何其他字符的所有字符串.

例如:(使用与上一个例子相同的正则表达式)如果我使用Regex类,则以下字符串将匹配 - > 12:00,07:15,23:59和12:00foo(包含匹配),bar23:00 (包含一个匹配).

有没有理由对它们进行不同的处理,是否有办法模仿与RegularExpressionValidator控件相同的行为?

提前致谢!

.net c# regex asp.net

4
推荐指数
1
解决办法
1085
查看次数

整数的字符串格式c#

我有一个包含两个字符串的类,一个反映当前年份,另一个代表一些价值.这些字段基于用户指定的格式(使用string.format)进行组合.重要提示:用户输入了以前生成的数据,因此它始终是一个整数,我们不必担心这一点.

我们的默认格式为"{0} - {1:000}".但是,现在用户指定的数据是一个字符串,它不希望适当地格式化.这是一个例子:

用户输入12作为所需数据.格式化时,它不显示2011-0012,而只显示2011-12.我如何确保添加0是没有做一些疯狂的循环,它将附加0或试图解析数字(假设它是一个数字.应该只有足够的0来等于长度为4的字符串)?

这是我作为一种格式尝试的:

"{0} - {1:0000}" - >用户被迫输入数字时的原始格式."{0} - {1:D4}"""{0} - {1:N4}"

c# integer string-formatting

4
推荐指数
1
解决办法
305
查看次数

在ASP.Net Core中间件中调用服务/存储库方法

ASP.Net Core noob here ...我正在使用DNX的Net.Net核心WebAPI核心项目.

我需要在我们的服务中实现API Key auth.为此,我创建了中间件,从请求中获取信息并继续进行身份验证.支持转到数据库,获取匹配的密钥,然后返回并进行验证.

这是为了查看上下文并获取APIKey而实现的中间件

的AuthenticationHandler

public class AuthorizationHandler
{
    private readonly RequestDelegate _next;
    private IAuthenticationService _authenticationService;

    public AuthorizationHandler(RequestDelegate next, IAuthenticationService authService)
    {
        _authenticationService = authService;
        _next = next;
    }

    public async Task Invoke(HttpContext context)
    {
        try
        {
            var apiKey = context.Request.Headers["Key"];
            var location = context.Request.Headers["Host"];
            var locationKey = _authenticationService.GetApiKey(location);

            if (apiKey == locationKey)
                await _next(context);


            context.Response.StatusCode = 403;
            context.Response.Headers.Add("WWW-Authenticate",
                new[] { "Basic" });

        }
        catch (Exception ex)
        {
            context.Response.StatusCode = 500;
            context.Response.Headers.Add("WWW-Authenticate",
                new[] { "Basic" …
Run Code Online (Sandbox Code Playgroud)

entity-framework-6 asp.net-web-api2 asp.net-core

4
推荐指数
1
解决办法
1157
查看次数

用于执行"Between"的Linq表达式

在SQL中,您可以编写一个查询,该查询在类型为'nvachar'的列上执行介于两者之间,并且只返回指定的最小值和最大值之间的所有行.

例如,

Table (Id:Int, Name:nvarchar):

Contents:
1, Annie
2, Bill
3, Frank
4, Phil
5, Ted

Select * where Name Between 'Frank' and 'Ted'

Should return Frank, Phil, and Ted.
Run Code Online (Sandbox Code Playgroud)

有没有办法用linq做到这一点,或者我将不得不创建自定义查询并执行它?我见过的唯一例子涉及日期或整数,这使得它非常容易(可以使用比较运算符,如<,>等).

c# linq between

3
推荐指数
1
解决办法
583
查看次数

使用字符串创建流文档

我有一些正在从数据库中读取的文本.此文本是xaml节对象的字符串表示形式.此文本将根据组合框中的选择而有所不同.以下是一些文字示例:

<Section xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xml:space="preserve" TextAlignment="Left" LineHeight="Auto" IsHyphenationEnabled="False" xml:lang="en-us" FlowDirection="LeftToRight" NumberSubstitution.CultureSource="User" NumberSubstitution.Substitution="AsCulture" FontFamily="Verdana" FontStyle="Normal" FontWeight="Normal" FontStretch="Normal" FontSize="11" Foreground="#FF000000" Typography.StandardLigatures="True" Typography.ContextualLigatures="True" Typography.DiscretionaryLigatures="False" Typography.HistoricalLigatures="False" Typography.AnnotationAlternates="0" Typography.ContextualAlternates="True" Typography.HistoricalForms="False" Typography.Kerning="True" Typography.CapitalSpacing="False" Typography.CaseSensitiveForms="False" Typography.StylisticSet1="False" Typography.StylisticSet2="False" Typography.StylisticSet3="False" Typography.StylisticSet4="False" Typography.StylisticSet5="False" Typography.StylisticSet6="False" Typography.StylisticSet7="False" Typography.StylisticSet8="False" Typography.StylisticSet9="False" Typography.StylisticSet10="False" Typography.StylisticSet11="False" Typography.StylisticSet12="False" Typography.StylisticSet13="False" Typography.StylisticSet14="False" Typography.StylisticSet15="False" Typography.StylisticSet16="False" Typography.StylisticSet17="False" Typography.StylisticSet18="False" Typography.StylisticSet19="False" Typography.StylisticSet20="False" Typography.Fraction="Normal" Typography.SlashedZero="False" Typography.MathematicalGreek="False" Typography.EastAsianExpertForms="False" Typography.Variants="Normal" Typography.Capitals="Normal" Typography.NumeralStyle="Normal" Typography.NumeralAlignment="Normal" Typography.EastAsianWidths="Normal" Typography.EastAsianLanguage="Normal" Typography.StandardSwashes="0" Typography.ContextualSwashes="0" Typography.StylisticAlternates="0"><Paragraph><Run>Hello World      </Run></Paragraph></Section>
Run Code Online (Sandbox Code Playgroud)

我需要采取此文本并在应用程序的控件中正确格式化显示它.我相信,为了做到这一点,我需要一个FlowDocumentViewer(我正在使用FlowDocumentScrollViewer).

我无法弄清楚的是如何将文本转换为流文档,以便我可以将它(绑定它)与文档查看器关联(我在此处是一个菜鸟).

有人可以帮忙吗?

c# wpf xaml flowdocument flowdocumentscrollviewer

1
推荐指数
1
解决办法
4745
查看次数