我写了这个正则表达式来删除任何不是数字的东西。
- (instancetype)init{
self = [super init]; // <--- should go first
self = (Subclass*)[[SVGKLayeredImageView alloc] initWithSVGKImage:[SVGKImage imageNamed:@"SomeFile.svg"]];
// self.imageSVG = [SVGKImage imageNamed:@"SomeFile.svg"];
[self sizeToFit];
self.userInteractionEnabled = YES;
return self;
}
它转换&#34; abc123xyz&#34;到&#34; 123&#34;
但是现在我想覆盖负数: -
var dataTest = data.replace(/[^0-9]/gi, '');
但它允许 - 介于两者之间。 它转换了&#34; abc123-xyz&#34;到&#34; 123 - &#34; 我希望它转换为&#34; 123&#34;
但是,如果用户给出&#34; -123abc&#34; ,它应该改为&#34; -123&#34;。
我在javascript中的focusout事件上调用此代码。我也会在jquery中接受解决方案。
答案 0 :(得分:6)
一种选择是捕获数字并删除其他所有内容:
input = "abc-123def"
clean = input.replace(/.*?(-?\d+).*/, "$1")
document.write(clean)
或更高效地使用match
:
clean = (input.match(/-?\d+/) || [])[0]