在 asp.net 项目中,我想在输入文本框时对数字进行分组。示例:123456123456 123.456.123.456
我的目标不是对 IP 地址进行分组。我希望它轻松读取数字。例如:12.000.152.156.123.156
我怎样才能做到这一点?
在 asp.net 项目中,我想在输入文本框时对数字进行分组。示例:123456123456 123.456.123.456
我的目标不是对 IP 地址进行分组。我希望它轻松读取数字。例如:12.000.152.156.123.156
我怎样才能做到这一点?
这称为掩蔽,有几种方法可以实现。
如果您是 ASP.NET 的新手,您可能会开始使用
并利用他们的蒙面编辑
如果您是 jQuery 的粉丝,您可以轻松使用遮罩插件。有几个,但这里是JsBin中使用的一个活生生的例子:
如果它是 IP 地址,这里是JsBin中使用的一个活生生的例子:
从评论中我可以看到您只想对数字进行分组以提高可读性,因为您可以检查JsBin女巫中的实时示例是使用以下方法制作的:
编辑:如果您想在服务器端执行此操作(不要标记 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
你可以使用这个 Jquery 插件http://webdeveloperplus.com/jquery/how-to-mask-input-with-jquery/
这样做的好处是它将准确地向用户显示格式的外观