如何在文本框中的字符后插入空格,具体取决于输入的总字符数JQuery?

时间:2010-11-30 15:33:14

标签: jquery

是否可以在文本框中添加空格,具体取决于用户输入的总字符数。

例如,如果用户在模糊上输入'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!');}
    }); 
});

5 个答案:

答案 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));
});

试一试:http://jsfiddle.net/PJMDp/2/

答案 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);
});