Oracle、JS实现 银行卡号 每四位 加空格分隔

Oracle中substr函数用法

substr(字符串,截取开始位置,截取长度) //返回截取的字

substr('Hello World',0,1) //返回结果为 'H'  *从字符串第一个字符开始截取长度为1的字符串

substr('Hello World',1,1) //返回结果为 'H'  *0和1都是表示截取的开始位置为第一个字符

substr('Hello World',2,4) //返回结果为 'ello'

substr('Hello World',-3,3)//返回结果为 'rld' *负数(-i)表示截取的开始位置为字符串右端向左数第i个字符

测试:

select substr('Hello World',-3,3) value from dual;

Oracleconcat 与 || 函数用法

参考:http://www.cnblogs.com/kangkaii/p/8421837.html

Oracle库表中查询字段实现 银行卡号,每4位自动加空格分隔

select ba.acc_number,
       substr(ba.acc_number, 1, 4) || ' ' || substr(ba.acc_number, 5, 4) || ' ' ||
       substr(ba.acc_number, 9, 4) || ' ' || substr(ba.acc_number, 13, 4) || ' ' ||
       substr(ba.acc_number, 17,length(ba.acc_number)) || ' ' as acc_number
  from bank_account ba

附:java中substring(index1,index2)的简单用法

作用:从字符串索引(下标)为index1的字符开始截取长度为index2-index1 的字符串。

String str="Hello World";

System.out.println(str.substring(0,5));

打印结果为:Hello

 

Oracle 输入19位银行卡号,在表中自动变为每4位自动加空格分隔,函数

函数例子:

CREATE OR REPLACE FUNCTION MY_FUN

(

  BANK_NO   NUMBER,

  SEPARATOR VARCHAR2 DEFAULT ' '

) RETURN VARCHAR2 IS

  STR1 VARCHAR2(100);

  STR2 VARCHAR2(100);

BEGIN

  STR1 := BANK_NO;

  WHILE STR1 IS NOT NULL LOOP

    STR2 := STR2 || SEPARATOR || SUBSTR(STR1, 1, 4);

    STR1 := SUBSTR(STR1, 5);

  END LOOP;

  RETURN LTRIM(STR2,SEPARATOR);

END;

效果测试:

SQL> SELECT MY_FUN(1111222233334444555) FROM DUAL;
MY_FUN(1111222233334444555)
--------------------------------------------------------------------------------
1111 2222 3333 4444 555



SQL> SELECT MY_FUN(1111222233334444555,',') FROM DUAL;
MY_FUN(1111222233334444555,',')
--------------------------------------------------------------------------------
1111,2222,3333,4444,555


JS中控制文本框:输入银行卡号,每4位自动加空格分隔

<head>  
  
    <title>test</title>  
    <script type="text/javascript">  
        window.onload =function() {  
            document.getElementById("test").onkeyup =function() {  
                this.value =this.value.replace(/\s/g,'').replace(/(\d{4})(?=\d)/g,"$1 ");
            };  
        };  
    </script>

</head>  
<body>  
    <input type="text" id="test"/>  
</body>  

方式一:

        //卡号4位自动空格分隔
        window.onload =function() {
            document.getElementById("cardNumber").onkeyup =function() {
                this.value =this.value.replace(/[^\d|'']/g,'').replace(/(\d{4})(?=\d)/g,"$1 ");
            };
        };

方式二:

        //卡号4位自动空格分隔
        window.onload =function() {
            document.getElementById("cardNumber").onkeyup =function() {
                this.value =this.value.replace(/(\d{4})(?=\d)/g,"$1 ");
            };
        };

转载请注明出处:BestEternity亲笔。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值