我正在编写一个脚本,它会在每4个数字后面放一个空格来实现这个目的我编写一个工作正常的脚本
这就像
function putSpace(el, after) {
putSapceAfter = putSapceAfter || 4;
var v = el.value.replace(/[^\dA-Z]/g, ''),
reg = new RegExp(".{" + putSapceAfter + "}","g")
el.value = v.replace(reg, function (a, b, c) {
return a + ' ';
});
}
var el = document.getElementById('numerDom');
el.addEventListener('keyup', function () {
putSpace(this, 5);
});
现在如果数字从6011或65开始,那么我想在4位数之后放置第一个空格,然后在文本框内的每5位数之后休息,其他每4位数后放一个空格。
提前致谢。
答案 0 :(得分:0)
这应该做你想要的:
String.prototype.chunk = function(n) {
var ret = [];
for(var i=0, len=this.length; i < len; i += n) {
ret.push(this.substr(i, n))
}
return ret
};
function insertSpace() {
// Disregard everything bar digits and captals
this.value = this.value.replace(/[^\dA-Z]/g, '')
// Start with 6011 or 65
var hit = this.value.match(/^(6011|65)/);
if(hit){
var part_1 = this.value.slice(0,4),
part_2 = this.value.slice(4).chunk(5).join(" ");
if(part_1.length === 4){
this.value = part_1 + " " + part_2;
}
} else {
this.value = this.value.chunk(4).join(" ");
}
}
var el = document.getElementById('numerDom');
el.addEventListener('keyup', insertSpace, false);
我从这里获得了String.prototype.chunk
功能:
How can I insert a character after every n characters in javascript?
这是fiddle。