十进制数的C#正则表达式
我正在尝试为文本框创建一个正则表达式,它应该只允许数字或小数。例如,我应该能够输入10和10350 我将使用的小数分隔符是“”,小数长度不需要限制十进制数的C#正则表达式,c#,regex,textbox,decimal,C#,Regex,Textbox,Decimal,我正在尝试为文本框创建一个正则表达式,它应该只允许数字或小数。例如,我应该能够输入10和10350 我将使用的小数分隔符是“”,小数长度不需要限制 有人知道我如何制作这样的正则表达式吗?如果你想在你的项目中的很多地方使用它,你可以制作新的TextBoxcontrol,它只接受数字,并在点击“.”时制作“,”,当它失去焦点时,你可以对它进行测试()如果您要在项目中的许多地方使用它,您可以使新的TextBoxcontrol只接受数字,并在单击“.”时生成“,”,当它失去焦点时,您可以对其进行测试()
有人知道我如何制作这样的正则表达式吗?如果你想在你的项目中的很多地方使用它,你可以制作新的TextBoxcontrol,它只接受数字,并在点击“.”时制作“,”,当它失去焦点时,你可以对它进行测试()如果您要在项目中的许多地方使用它,您可以使新的TextBoxcontrol只接受数字,并在单击“.”时生成“,”,当它失去焦点时,您可以对其进行测试()只需使用
decimal.TryParse
或double.TryParse只需使用decimal.TryParse
或double.TryParse我也会选择decimal.TryParse()
,但如果你真的需要一个正则表达式,那么类似的东西应该可以用:(\d+(,\d*))
我会选择decimal.TryParse()
也是,但是如果你真的需要一个正则表达式,那么像这样的东西应该可以工作:(\d+(,\d*)?)
这是你的正则表达式:
^[\d]+,?[\d]*$
检查它是否与文本框中的内容匹配。这是您的正则表达式:
^[\d]+,?[\d]*$
检查它是否与文本框中的内容匹配。为什么不直接使用decimal.TryParse或double.TryParse?@Shurdoof,你应该将其作为答案。为什么不直接使用decimal.TryParse或double.TryParse?@Shurdoof,你应该将其作为答案。将匹配字符串,,,
将匹配字符串,,,,,,1,,,
别忘了锚定它,例如:^\d+(?:,\d+)\z
@Qtax,很好的观点,实际上还不太清楚像4、
或,56
这样的东西是否也应该匹配。看看相关的主题,有一个类似的问题正在被回答,别忘了锚定它,例如:^\d+(?:,\d+)\z
@Qtax,很好的观点,事实上,不太清楚像4、
或,56
这样的东西是否也应该匹配。从相关的话题来看,有一个类似的问题正在被回答