Tyl*_*itt 3 forms jquery input
我正试图在我的网站上制作一个美观的信用卡输入表格.
我想要一个以下列格式显示的表单:
1234-1234-1234-1234
Run Code Online (Sandbox Code Playgroud)
任何非十进制数都将被忽略,并且第五个字符(由连字符表示)可以由用户输入为数字(成为cc的第5个数字),空格或连字符.
例如,所有以下输入都将在输入中看到 1234-1
12341
1234 1
1234-1
123whoops4 1
Run Code Online (Sandbox Code Playgroud)
试试这个:
$('#theInput').blur(function()
{
$(this).val(function(i, v)
{
var v = v.replace(/[^\d]/g, '').match(/.{1,4}/g);
return v ? v.join('-') : '';
});
});?
Run Code Online (Sandbox Code Playgroud)
在这里试试:http://jsfiddle.net/hnbx4/
这是解释:
第一:
v.replace(/[^\d]/g, '')
Run Code Online (Sandbox Code Playgroud)
我们通过输入过滤以仅包含数字.然后:
.match(/.{1,4}/g);
Run Code Online (Sandbox Code Playgroud)
我们将数字串分成4位数字块.然后:
return v ? v.join('-') : '';
Run Code Online (Sandbox Code Playgroud)
如果是一个数组,我们通过在块之间插入一个破折号来组合数组.否则我们只需将其设置为空字符串.