input里面可以输入或者粘贴文本,里面的文本只能是[a-zA-Z0-9],每输入5个字符,自动加入'-',正则表达式如何表示呀
想多了,把简单问题搞复杂~
"1234567890abcDEFg".replace(/([^_\W]{5})/g,"$1-")
//"12345-67890-abcDE-Fg"
var txt=document.getElementById("txt");
txt.oninput=function(){
var val=txt.value;
var len=val.length;
if(len%5==0){
txt.value=val+"-";
}
}
}
这个用正则不好实现,可以写一个函数来做这个事情
比如:
function insertSplit(str, split) {
split = split || '-';
var strList = str.split('');
var result = [];
strList.forEach(function(item, index) {
result.push(item);
if ((index + 1) % 5 === 0) {
result.push('-');
}
});
return result.join('');
}
1 回答851 阅读✓ 已解决
1 回答1.1k 阅读
2 回答773 阅读
2 回答617 阅读
2 回答601 阅读
1 回答680 阅读
2 回答520 阅读
你们搞得太复杂了吧,还有个条件是字符输入的限定。。。
搞了个demo
https://jsfiddle.net/szco1kyz/