[英]JS - Remove all spaces and insert space three characters from end
我正在尝试正确格式化表单中的邮政编码条目,以便它们在正确的位置有一个空格,从末尾开始总是三个字符。 例如:
AA1 1AA
A1A 1AA
AA11 1AA
A1 1AA
const addSpace = (str, fromEnd) => `${str.slice(0, -1 * fromEnd)} ${str.slice(-1 * fromEnd)}`;
['word', 'longword'].forEach(word => console.log(addSpace(word, 3)));
var el = document.getElementById('input_1_14');
el.addEventListener('keyup', function () {
this.value = addSpace(this.value, 3);
});
但是,如果我在相关字段中键入一系列字符,它会每隔一个字符插入空格,除了最后一个三个字符,例如:
1 1 1 1 1 1 111
我哪里错了?
这是由于事件onKeyUp
,您放置了一个额外的字母,它会在每个事件之后不断添加空格而不删除它们。
const addSpace = (str, fromEnd) => `${str.slice(0, -1 * fromEnd)} ${str.slice(-1 * fromEnd)}`; const removeSpace = (str) => str.replace(/ /g, ""); const editString = (str, fromEnd) => addSpace(removeSpace(str), fromEnd); ['word', 'longword'].forEach(word => console.log(editString(word, 3))); var el = document.getElementById('input_1_14'); el.addEventListener('keyup', function () { this.value = editString(this.value, 3); });
<input type="tex" id="input_1_14">
尝试这个
var str = '111111111';
var result ='';
for (i=0;i<str.length;i++) {
if (i >= str.length-4) {
result += str[i]+' ';
} else if (str[i] == ' '){
continue;
} else {
result += str[i];
}
}
console.log(result);
它肯定会工作,检查它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.