我见过类似的问题,但没有找到可行的答案.
我想使用灰色图像掩盖UIView(需要转换为alpha刻度以进行遮罩).UIView有背景.掩盖图像应该很容易,但我想屏蔽任何UIView.
任何线索将不胜感激.
我试图在背景图像的顶部放置一个css3渐变.使用下面的代码将背景图像放在渐变的顶部,但我试图以相反的方式进行,因此渐变在顶部充当蒙版.
url(images/darkwood.png),
-webkit-gradient(linear, 0 0, 0 100%, from(#EEF), to(#000)) 300px 50px no-repeat,
-webkit-gradient(linear, 0 0, 0 100%, from(#EFE), to(#000)) 0 0 no-repeat;
background:
url(images/darkwood.png),
-moz-linear-gradient(#EEF, rgba(0,0,0,1)) 300px 50px no-repeat,
-moz-linear-gradient(#EFE, rgba(0,0,0,1)) 0 0 no-repeat;
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助
我们的网络应用程序需要符合PCI标准,即不得存储任何信用卡号码.该应用程序是大型机系统的前端,它在内部处理CC号码 - 正如我们刚刚发现的那样 - 偶尔会在其响应屏幕上吐出一个完整的CC号码.默认情况下,这些响应的全部内容都以调试级别记录,并且从这些响应中解析的内容也可以记录在许多不同的位置.所以我无法追捕这些数据泄漏的来源.我必须确保在我们的日志文件中屏蔽了CC编号.
正则表达式部分不是问题,我将重用我们已在其他几个地方使用的正则表达式.但是我找不到有关如何使用Log4J更改日志消息的一部分的任何好的来源.过滤器似乎更受限制,只能决定是否记录特定事件,但不能改变消息的内容.我还发现了Log4J 的ESAPI安全包装API,它初看起来有望实现我的目标.但是,显然我需要用ESAPI记录器类替换代码中的所有记录器 - 这是一个痛苦的屁股.我更喜欢更透明的解决方案.
知道如何屏蔽Log4J输出的信用卡号码吗?
更新:根据@ pgras的最初想法,这是一个有效的解决方案:
public class CardNumberFilteringLayout extends PatternLayout {
private static final String MASK = "$1++++++++++++";
private static final Pattern PATTERN = Pattern.compile("([0-9]{4})([0-9]{9,15})");
@Override
public String format(LoggingEvent event) {
if (event.getMessage() instanceof String) {
String message = event.getRenderedMessage();
Matcher matcher = PATTERN.matcher(message);
if (matcher.find()) {
String maskedMessage = matcher.replaceAll(MASK);
@SuppressWarnings({ "ThrowableResultOfMethodCallIgnored" })
Throwable throwable = event.getThrowableInformation() != null ?
event.getThrowableInformation().getThrowable() : null;
LoggingEvent maskedEvent = new LoggingEvent(event.fqnOfCategoryClass,
Logger.getLogger(event.getLoggerName()), …Run Code Online (Sandbox Code Playgroud) 我有一个UIView子类,它使用一个CAShapeLayer掩码CALayer.面具使用不同的形状,在剩下的角落有三个圆角和一个切出的矩形.
当我UIView使用标准动画块调整大小时,UIView自身和它的CALayer大小调整就好了.然而,面具立即应用,这导致一些绘图问题.
我已经尝试使用a动画屏幕的大小调整,CABasicAnimation但没有任何运气调整大小动画.
我可以以某种方式在面具上实现动画调整大小效果吗?我是否需要摆脱面具,或者我必须改变一下我当前绘制面具的方式(使用- (void)drawInContext:(CGContextRef)ctx).
干杯,亚历克斯
我有一个问题,用jQuery和Masked Input Plugin屏蔽手机输入.
有两种可能的格式:
(XX)XXXX-XXXX (XX)XXXXX-XXXX有没有办法掩盖它接受这两种情况?
编辑:
我试过了:
$("#phone").mask("(99) 9999-9999");
$("#telf1").mask("(99) 9999*-9999");
$("#telf1").mask("(99) 9999?-9999");
Run Code Online (Sandbox Code Playgroud)
但它并不像我想的那样有效.
最接近的是(xx)xxxx-xxxxx.
我输入(xx)xxxx-xxxx时输入第10个数字,而(xx)xxxxx-xxxx输入第11个数字时输入.它可以吗?
我想做类似以下的事情:
我想用半透明的黑色覆盖整个屏幕.然后,我想从半透明的黑色覆盖物上切下一个圆圈,这样你就可以清楚地看透.我这样做是为了突出显示部分屏幕的教程.
然后,我想将切出的圆圈设置为屏幕的其他部分.我还希望能够像使用通用按钮背景图像一样水平和垂直拉伸切割圆.
我需要美国电话号码格式的常规快递.我想用JavaScript替换电话号码字符串到美国电话号码字符串格式.
var number = "4031234789";
Run Code Online (Sandbox Code Playgroud)
我想以下面的格式掩盖它: -
number = number.mask('(000) 000-0000');
Run Code Online (Sandbox Code Playgroud)
任何人都可以在JavaScript中向我展示正则表达式吗?
在给定范围的情况下,是否可以将索引数组转换为1和0的数组?即[2,3] - > [0,0,1,1,0],范围为5
我正在尝试自动化这样的事情:
>>> index_array = np.arange(200,300)
array([200, 201, ... , 299])
>>> mask_array = ??? # some function of index_array and 500
array([0, 0, 0, ..., 1, 1, 1, ... , 0, 0, 0])
>>> train(data[mask_array]) # trains with 200~299
>>> predict(data[~mask_array]) # predicts with 0~199, 300~499
Run Code Online (Sandbox Code Playgroud) 就像是
SELECT COUNT(*) AS c FROM BANS WHERE typeid=6 AND (SELECT ipaddr,cidr FROM BANS) MATCH AGAINST 'this_ip';
因此,您不首先从数据库中获取所有记录,然后逐个匹配它们.
如果c> 0则匹配.
BANS表:
id int auto incr PK
typeid TINYINT (1=hostname, 4=ipv4, 6=ipv6)
ipaddr BINARY(128)
cidr INT
host VARCHAR(255)
Run Code Online (Sandbox Code Playgroud)
DB:MySQL 5
查询时已知IP和IPv6类型(4或6).
IP例如是二进制格式的:: 1
BANNED IP例如是:: 1/64
尝试在UIView上屏蔽椭圆的动画以进行比例变换,保留在中心位置.
我发现的CALayer - CABasicAnimation不是围绕中心/ anchorPoint缩放,并随后加入一个bounds属性到maskLayer CAShapeLayer然而,这与面罩定位在只显示它的1/4左上角结束.我希望面具保持在屏幕的中心.
@synthesize maskedView;
- (void)viewDidLoad
{
[super viewDidLoad];
UIViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"Next"];
vc.view.frame = CGRectMake(0,0, self.view.frame.size.width, self.view.frame.size.height);
vc.view.layer.bounds = self.view.layer.bounds;
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
CGRect maskRect = CGRectMake((self.view.frame.size.width/2)-50, (self.view.frame.size.height/2)-50, 100, 100);
CGMutablePathRef path = CGPathCreateMutable();
CGPathAddEllipseInRect(path, nil, maskRect);
[maskLayer setPath:path];
CGPathRelease(path);
vc.view.layer.mask = maskLayer;
[self.view addSubview:vc.view];
maskedView = vc.view;
[self startAnimation];
}
Run Code Online (Sandbox Code Playgroud)
动画...
-(void)startAnimation
{
maskedView.layer.mask.bounds = CGRectMake((self.view.frame.size.width/2)-50, (self.view.frame.size.height/2)-50, 100, 100);
maskedView.layer.mask.anchorPoint = CGPointMake(.5,.5);
maskedView.layer.mask.contentsGravity = …Run Code Online (Sandbox Code Playgroud)