比如我现在获取到的身份证号码,
txtNum.Text=dt.Rows[0]["IDCard"].ToString();
现在这个txtNum.Text="523122199102160412";
怎样把显示在控件上的Text文本字符 把身份证上的出生日期给隐藏掉 就是用*替换掉
替换后的结果是 523122********0412
请大神贴一下代码
------解决思路----------------------
txtNum.Text = txtNum.Text.SubString(0,6) + "********" + txtNum.Text.SubString(14);
------解决思路----------------------
这年头连截取字符串都不会了吗?
Regex.Replace(txt,@"(?<=\d{6})\d{8}","********")
------解决思路----------------------
想来版主教训的话是极好的,
1:字符截取,
2:正则表达式
我来迟了
------解决思路----------------------
这样不对吧?
你把字符串直接替换掉了,那么文本框里就是真正的*了,你再从里面取出来,它还是*,再也变不回原来的字符串了
你其实需要的是个MaskTextBox,让一部分字符显示为*,而不是改变它的text
------解决思路----------------------
有道理,不过有个tag可以存对象,不过masktextbox好点
------解决思路----------------------
现在只谈怎么转换,说到方法,当然还有3,还有4.....
再出一个
txtNum.Text = new string(txtNum.Text.Select((p, i) => (i > 5 && i < 14) ? '*' : p).ToArray());
------解决思路----------------------
楼主如果有其它主键,否则还需要把真实值类似于以下方式存起来,操作数据库的时候,获取txtNum.Tag.ToString()值传回数据库。
txtNum.Tag="523122199102160412";