如何使用正则表达式为数字而不是字母[重复]

问题描述 投票:-2回答:3

这个问题在这里已有答案:

你好我想验证用户只能输入数字,数字可能是整数或小数但不是字母只是十进制否我怎么能写这个正则表达式。帮帮我谢谢

c# asp.net
3个回答
0
投票

整数或小数的正则表达式

模式:/^\d+(.\d{1,2})?$/


0
投票

如果您使用asp并部署网站,则可能需要考虑国际化。

using System;
using System.Globalization;

    //from: https://msdn.microsoft.com/en-us/library/system.globalization.numberformatinfo.numberdecimalseparator(v=vs.110).aspx
    // Gets a NumberFormatInfo associated with the en-US culture.
    NumberFormatInfo nfi = new CultureInfo( "en-US", false ).NumberFormat;
    // Displays the same value with a blank as the separator.
    string seperator = nfi.NumberDecimalSeparator;

    string seperatorRegex = "";

    foreach(char chr in seperator.ToCharArray())
    {
        seperatorRegex += $"[{chr}]?";
    }

    string Pattern = $@"\d+{seperatorRegex}\d*";

    //do matching....

如果不是其他答案就好了,如果不是更清洁。


0
投票

您可以使用字符类。

[\d]*.?[\d]*

[] - 角色课程。

\ d - 与[0-9]相同。

此外,您可以使用命名组来提取整数和分数

(?<integer>[\d]*).?(?<fraction>[\d]*)

(?) - 捕获组。

? - 与{0,1}相同。

© www.soinside.com 2019 - 2024. All rights reserved.