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;
参考: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亲笔。