作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我制作了一个函数来实时控制数字和 float 。但是对于必须像这样的表达式的 float 它不能正常工作:
// I wish a number like x figures . 3 figures (example : 123456.123)
/^([1-9][0-9]*|0)(\.[0-9]{3})?$/
但是这个表达式让点消失了...
下面是 /(^\d+$)|(^\d+\.\d+$)|[,.]/
,但可以添加多个点:
$('.float_input').live("keypress",function(){inputControl($(this),'double');});
function inputControl(input,format)
{
var value=input.val();
if (format=='int'){expression=/(^\d+$)|(^\d+\.\d+$)/;}
else if (format=='double'){expression=/(^\d+$)|(^\d+\.\d+$)|[,.]/;}
var values=value.split("");
var update="";
for(id in values)
{
if (expression.test(values[id])==true && values[id]!='')
{
// also replace ',' by '.'
update=update+''+values[id].replace(',','.');
}
}
input.val(update);
}
所以我有多个点或没有点,这让我很疯狂,因为我肯定会接近解决方案。
编辑 > 解决方案
哎呀,感谢有关正则表达式的帮助,我找到了解决方案!
需要两个测试:
这是最终的脚本,效果如花,分享给大家:
$('.numeric_input').live("keyup",function(){inputControl($(this),'int');});
$('.float_input').live("keyup",function(){inputControl($(this),'float');});
function inputControl(input,format)
{
var value=input.val();
var values=value.split("");
var update="";
var transition="";
if (format=='int'){
expression=/^([0-9])$/;
finalExpression=/^([1-9][0-9]*)$/;
}
else if (format=='float')
{
var expression=/(^\d+$)|(^\d+\.\d+$)|[,\.]/;
var finalExpression=/^([1-9][0-9]*[,\.]?\d{0,3})$/;
}
for(id in values)
{
if (expression.test(values[id])==true && values[id]!='')
{
transition+=''+values[id].replace(',','.');
if(finalExpression.test(transition)==true)
{
update+=''+values[id].replace(',','.');
}
}
}
input.val(update);
}
最佳答案
这个正则表达式
(/(^\d+$)|(^\d+.\d+$)|[,.]/)
应该匹配
我怀疑你的正则表达式应该是请注意,我已经逃脱了最后一段时间。这将匹配逗号或句号
/(^\d+[,\.]{0,1}\d{3})/
根据评论中的说明,可能正是您想要的
[-+]?[0-9]*\.?[0-9]+
也可以
注意:您可以使用 Roy Osherove 的 Regulazy 极大地简化您的正则表达式生活。或 Regex Buddy 工具。
关于javascript - 使用正则表达式掩码实时控制浮点输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8824439/
Live:SignInButton(在 Windows Phone 7 上)在导航到使用它的页面后立即尝试连接到互联网。 是否可以禁用此功能?我希望它在用户需要时连接到互联网。目前,每次用户进入应用程
我是一名优秀的程序员,十分优秀!