我有一个文本框(用于价格),我必须在其中验证它只是数字数据。另外,我不能允许前面的数字为零(如 01)。所以我用正则表达式替换方法。用于替换字母:
$("#txtPrice").keyup(function(){
var text=$(this).val();
$(this).val(text.replace(/[^\d\s\.]/,""));
});
为了替换前面的零,我使用了
$("#txtPrice").keyup(function(){
var text=$(this).val();
$(this).val(text.replace(/^0+/, ''));
});
它在 Firefox 上运行良好,但在 IE 中它的行为很奇怪。
如果我在数字前面添加一个新数字,它会将新数字添加到数字的末尾。例如,如果我将“56”编辑为“156”,则在末尾添加数字 1,形成“561”。如果尝试将任何数字放在前面,则实际上将其添加到文本字段的末尾。如何解决这种行为?