perl:
$a="1232312312313113123132123"#银行卡号
$a=~s/(?<=\d)(?:[\d]{4})$/****/g
print "$a\n"
python:
import re
a="1232312312313113123132123"#银行卡号
a=re.sub("(?<=\d)(?:[0-9]{4})$","****",a)
print a
银行卡卡号没法判断,
只能根据这个号码有什么特点 进行正则式判断。
比如银行卡特点是一共19位,都是数字。
正则式就是"^\\d{19}$"
System.out.println(st.matches("^\\d{19}$"))
如果不是19位数字则打印出false,如果是,则打印出true
(其他还有什么特点吗,不同银行可能有各自的特点,这个你要去问银行)
正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。
<!DOCTYPE html><html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<input type="text" type="number" name="" id="card" onkeyup="ck(this)" onKeyDown="del(this)">
<br>
<input type="text" id="show">
</body>
<script type="text/javascript">
var card=''
function ck(e) {
if(e.value.length>card.length){
card=card+e.value.slice(-1)
e.value=e.value.slice(0,-1)+"*"
}
l=e.value.length+1
if(!(l%5)){
e.value=e.value+" "
card=card+" "
}
document.getElementById('show').value=card
}
function del (e) {
if(event.code=="Backspace"){
if(e.value.slice(-1)==" "){
e.value=e.value.slice(0,-1)
card=card.slice(0,-1)
}
card=card.slice(0,-1)
}
}
</script>
</html>
输的太快会出问题