【问题标题】:Textbox regex validation is not working in uwp [duplicate]文本框正则表达式验证在 uwp 中不起作用 [重复]
【发布时间】:2020-07-10 07:47:40
【问题描述】:

这是一个仅对数字进行自定义正则表达式验证的示例,该示例在 UWP 的 Windows Community Toolkit 官方文档中提供,此处为 TextBox Regex extensions in toolkit

<StackPanel Margin="10,0,10,0">
    <TextBox Name="PhoneNumberValidator"
             extensions:TextBoxRegex.Regex="^\s*\+?\s*([0-9][\s-]*){9,}$"
             Header="Text box with Regex extension for phone number, validation occurs on TextChanged"
             HeaderTemplate="{StaticResource HeaderTemplate}"
             Style="{StaticResource TextBoxRegexStyle}" />
    <StackPanel Orientation="Horizontal">
        <TextBlock Text="Is Valid: " />
        <TextBlock Text="{Binding (extensions:TextBoxRegex.IsValid), ElementName=PhoneNumberValidator, Converter={StaticResource StringFormatConverter}}" />
    </StackPanel>

</StackPanel>  

它可以工作,但如果我更改正则表达式并使用自定义正则表达式/^(?!\s*$).+/ 进行NotNullOrEmpty 验证,则它不起作用。意思是 ext:TextBoxRegex.IsValid 总是返回 false。为什么?

【问题讨论】:

  • 你在文档中使用它吗? extensions:TextBoxRegex.Regex="^(?!\s*$).+"?
  • xmlns:ext="using:Microsoft.Toolkit.Uwp.UI.Extensions" 是的,除了我使用的是ext
  • 和 idk 没有说一句话就否决了这个问题 :(
  • 你想用你的^(?!\s*$).+ RegEx 匹配什么?这对我来说有点奇怪。
  • @bradbury9 先生。从这个答案stackoverflow.com/questions/7967075/… 我得到了这个正则表达式来查看文本框文本是空还是空

标签: c# regex uwp


【解决方案1】:

我测试了您在 WindowsCommunityToolkit 示例应用程序中提供的正则表达式:

<TextBox extensions:TextBoxRegex.Regex="(?!^$)([^\s])"
         .../>

效果很好,就是输入文字后,结果显示为True

请注意,正则表达式本身不包含第一个和最后一个/,它是一种语法,表示内部是一个正则表达式。在XML中输入相关正则表达式时,只需要输入内容即可。

谢谢。

【讨论】:

  • 非常感谢!工作,我现在明白了:)
猜你喜欢
  • 2016-03-01
  • 2011-03-10
  • 2016-12-21
  • 1970-01-01
  • 2021-06-18
  • 2018-11-29
  • 2014-04-21
  • 1970-01-01
  • 2016-08-01
相关资源
最近更新 更多