How to insert space every 4 characters for IBAN registering?

前端 未结 9 1724
感情败类
感情败类 2020-11-29 03:28

I\'m really new in JavaScript and I would like to add to my input text, space insertion for IBAN account registering.

9条回答
  •  佛祖请我去吃肉
    2020-11-29 03:59

    I need the same but for BVR/BVR+ swiss payment form. So what I need is add a space every 5 chars but from the end of the string.

    Example : "52 86571 22001 00000 10520 15992" or sometimes shorter like "843 14293 10520 15992".

    So, here is the solution by reversing the string before and after adding spaces if rev=1.

    function space(str, stp, rev) {
        if (!str) {
            return false;
        }
        if (rev == 1) {
            str = str.split('').reverse().join('');
        }
        if(stp > 0) {
            var v = str.replace(/[^\dA-Z]/g, ''),
                reg = new RegExp(".{" + stp + "}", "g");
            str = v.replace(reg, function (a) {
                return a + ' ';
            });
        }
        if (rev == 1) {
            str = str.split('').reverse().join('');
        }
        return str;
    }
    

    Use :

    var refTxt = space(refNum, 5, 1);
    

    EDIT : PHP version added

    function space($str=false, $stp=0, $rev= false) {
    
        if(!$str)
            return false;
        
        if($rev)
            return trim(strrev(chunk_split(strrev($str), $stp, ' ')));
        else
            return trim(chunk_split($str, $stp, ' '));
    }
    

提交回复
热议问题