【发布时间】: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/… 我得到了这个正则表达式来查看文本框文本是空还是空