在asp.net项目中, 我想在文本框中输入时对数字进行分组。 例: 123456123456 123.456.123.456
我的目标不是分组ip地址。我希望它能轻松读取数字。例如:12.000.152.156.123.156
我该怎么做?
答案 0 :(得分:2)
这称为 masking ,有几种方法可以实现这一点。
如果您是ASP.NET新手,可以使用
开始并使用他们的Masked Edit
如果你是jQuery的粉丝,你可以轻松使用掩码插件。有几个,但这里有live example in JsBin使用:
如果是IP地址,这里使用的是live example in JsBin:
来自评论我可以看到您只想将数字编号分组以获得更好的可读性,因为您可以使用以下方法检查live example in JsBin女巫:
答案 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
您可以随时添加一些简单的验证
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/
这样做的好处是它会向用户显示格式的样子