打字时Asp.net数字分组

时间:2012-05-08 11:16:01

标签: javascript asp.net

在asp.net项目中, 我想在文本框中输入时对数字进行分组。 例: 123456123456 123.456.123.456

我的目标不是分组ip地址。我希望它能轻松读取数字。例如:12.000.152.156.123.156

我该怎么做?

3 个答案:

答案 0 :(得分:2)

这称为 masking ,有几种方法可以实现这一点。

如果您是ASP.NET新手,可以使用

开始
  

ASP.NET Ajax Control Toolkit

并使用他们的Masked Edit

如果你是jQuery的粉丝,你可以轻松使用掩码插件。有几个,但这里有live example in JsBin使用:

  

Masked Input jQuery Plugin

如果是IP地址,这里使用的是live example in JsBin

  

IP Address jQuery Plugin


来自评论我可以看到您只想将数字编号分组以获得更好的可读性,因为您可以使用以下方法检查live example in JsBin女巫:

  

Tim Schmelter answer代码

答案 1 :(得分:1)

编辑:如果你想在服务器端执行此操作(不标记javascript,人们花了很多时间为您提供客户端解决方案):

double number = 123456123456;
String numeric = String.Format("{0:#,0}", number); // "123.456.123.456"

http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx


balexandre

添加

您可以随时添加一些简单的验证

using System.Net;

IPAddress ip = new System.Net.IPAddress(); 
if(IPAddress.TryParse(numeric, out ip))
    // you get a valid IP Address in the ip variable
else
    // IP Address not valid, go back and ask again...

如果要将千位分隔符添加到数字字符串值,可以使用此函数:

<script type="text/javascript">
    function groupDigit(strDigit, separator) {
        if (separator == null || separator.length == 0) separator = ".";
        strDigit += '';
        x = strDigit.split('.');
        x1 = x[0];
        x2 = x.length > 1 ? '.' + x[1] : '';
        var rgx = /(\d+)(\d{3})/;
        while (rgx.test(x1)) {
            x1 = x1.replace(rgx, '$1' + separator + '$2');
        }
        return x1 + x2;
    }
</script>

试验:

alert(groupDigit("123456123456", ".")); // 123.456.123.456

答案 2 :(得分:0)

您可以使用此Jquery插件http://webdeveloperplus.com/jquery/how-to-mask-input-with-jquery/

这样做的好处是它会向用户显示格式的样子