是否可以在文本框中添加空格,具体取决于用户输入的总字符数。
例如,如果用户在模糊上输入'LU33RT',我希望它显示'LU3 3RT'。我想要合并的规则是从右边开始计算3个字符,然后添加一个空格。
$('#postcode').blur(...
非常感谢任何帮助,谢谢
我的解决方案,虽然它是基本的:
$(document).ready(function(){
$('#postcode').blur(function(){
if(($(this).val().length == 6) && (/\S/)){
var myString = $(this).val().slice(0, 3);
var myString2 = $(this).val().slice(-3);
$(this).val(myString + ' ' + myString2);
}else{
document.write('OOPS!');}
});
});
答案 0 :(得分:2)
$('#postcode').blur(function()
{
$(this).val( $(this).val().substring( 0, -3 ) + ' ' + $(this).val().substring( -3 ));
}
答案 1 :(得分:1)
您可以使用RegExp将最后3个字符替换为空格加上相同的3个字符:
$('#postcode').blur(function(){
$(this).val($(this).val().replace(/...$/, ' $&'));
});
试一试:http://jsfiddle.net/PJMDp/1/
如果您真的必须计算3个字符,则应使用slice
,而不是substring
:
$('#postcode').blur(function(){
var postcode = $(this), val = postcode.val();
if(val.length > 3)
postcode.val(val.slice(0, -3)+' '+val.slice(-3));
});
答案 2 :(得分:0)
另一个选择是使用正则表达式替换:
$('#postcode').blur(function() {
var str = $(this).val();
// I assume that since the example had 6 characters that this was the min you were looking for
if(str.length >= 6) {
$(this).val(str.replace(/.{3}$/, " $&"));
}
});
答案 3 :(得分:0)
您是否考虑使用MAsked Input Plugin之类的内容?
我认为如果适当调整它可能会有用。
答案 4 :(得分:0)
我要说的最好的方法是确保您的邮政编码始终格式正确,而不必担心邮政编码的长度,请执行以下操作:
$("#postcode").bind("blur", function(){
var postcode_fix = $(this).val().toUpperCase().replace(/ /g,'');
postcode_fix = postcode_fix.slice(0, -3)+' '+postcode_fix.slice(-3);
$(this).val(postcode_fix);
});