以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  大规模粘贴时,如何将身份证号码转换为正确的格式。  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=127704)

--  作者:pc005637
--  发布时间:2018/11/20 14:32:00
--  大规模粘贴时,如何将身份证号码转换为正确的格式。
实际工作中,有些在excel表格的身份证号码字段,电脑可能会自动将一个\'号加在身份证号码前或后,或者是输入人员的原因,在身份证号码前或后加各种自定义的符号或字母,防止excel表将身份证号码转换成科学记数法的样子。
我们能否建立一个自定义的函数,在表事情datacolchanging里,自动将这些不规范的身份证号码自动去除异常的字符,保留允许存在的字符,如 1234567890X 这些字符。
如何处理,请各位大神指点。

--  作者:有点甜
--  发布时间:2018/11/20 15:00:00
--  

1、你现在粘贴的时候遇到什么问题?粘贴以后得到什么结果?

 

2、如果只是 \' 的问题,你可以用trim或者replace把字符串替换掉。

 

3、也可以用正则表达式,如

 

Dim str = "abc440881199103110638\'789"
Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "[0-9]{18}")
If mc.count > 0 Then
    msgbox(mc(0).value)
End If


--  作者:pc005637
--  发布时间:2018/11/20 15:13:00
--  大规模粘贴时,如何将身份证号码转换为正确的格式。
粘贴是没什么问题,只是想把不规范的格式,(多余的字符)去除。保留合规的字符,再进行检验正确性。
--  作者:有点甜
--  发布时间:2018/11/20 15:15:00
--  
参考2楼方法,在datacolchanging事件处理。
--  作者:pc005637
--  发布时间:2018/11/20 15:23:00
--  X符号未处理。
身份证末尾的x 或 X能处理吗?
--  作者:有点甜
--  发布时间:2018/11/20 15:27:00
--  

 

Dim str = "abc44088119910311063X\'789"
Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "[0-9]{17}[0-9xX]{1}")
If mc.count > 0 Then
    msgbox(mc(0).value)
End If


--  作者:pc005637
--  发布时间:2018/11/20 15:39:00
--  谢谢
谢谢。