【发布时间】:2018-10-19 04:16:28
【问题描述】:
我的网站上有一个表格,我的客户使用此表格向我发送消息。有时他们会在信息上写下他们的信用卡号。所以这真的很关键。我想掩盖这些信用卡号码。但当然卡号不会定期出现。
示例 1:1111222233334444
示例 2:4444 3333 2222 1111
示例 3:4444-3333-2222-1111
示例 4:4444 - 3333 - 2222 - 1111
示例 5:4444--3333--2222--1111
所以我可以屏蔽例如 1、2 和 3。但如果数字之间有多个空格或破折号,我就不能。
这是我最后一个正则表达式:
preg_replace("/(?:\b| )([3456]\d{3})([ -]+){0,1}\d{4}([ -]+){0,1}\d{4}([ -]+){0,1}(\d{0})/", "$1********$2", $a1);
这个正则表达式的结果:
结果 1:4444********1111
结果 2:4444******** 1111
结果 3:4444********-1111
结果 4:4444******** - 1111
结果5:4444********--1111
那么我应该在正则表达式中做什么?谢谢。
【问题讨论】:
-
你只是想遮住中间的两个部分吗?
-
是的,前 4 个和后 4 个不会被屏蔽。
标签: regex regex-negation