这是我的第一个问题,抱歉,如果它是愚蠢的,但我偶然发现了这段代码
function format(input){
var num = input.value.replace(/\./g,'');
if(!isNaN(num)){
num = num.toString().split('').reverse().join('').replace(/(?=\d*\.?)(\d{1})/g,'$1.');
num = num.split('').reverse().join('').replace(/^[\.]/,'');
input.value = num;
}
else{ alert('just numeric values please');
input.value = input.value.replace(/[^\d\.]*/g,'');
}
}
我真的不明白它是如何工作的,但基本上它将输入实时格式化为这种格式“9.9.9.9.9”,但我希望它像这样“9.9.9.9.9。”。我怎样才能添加上一期? 先谢谢
答案 0 :(得分:1)
如果您只需要将句点添加到字符串的末尾,只需执行以下操作:
text = text.replace(/(.)/g, '$1.');
对于你的整个功能,如果你正在使用像“12345”那样的字符串,并且只想在每个数字后面加一段时间,那么就有更简单的方法来做到这一点:
{{1}}
会这样做。
答案 1 :(得分:0)
input.value = num+'.';
或者像这样
var num = b.split('').reverse().join('').replace(/^[\.]/,'').replace(/$/, ".");
/$/
表示字符串的结尾
或者像这样
var num = b.split('').reverse().join('').replace(/^(.{1})(.+)/, '$2$1');
看一下这篇文章:
Move n characters from front of string to the end
享受