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('');
}
13 回答12.6k 阅读
7 回答1.7k 阅读
3 回答1k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
2 回答1.8k 阅读
2 回答1k 阅读✓ 已解决
你们搞得太复杂了吧,还有个条件是字符输入的限定。。。
搞了个demo
https://jsfiddle.net/szco1kyz/