最近在項目遇到這樣的需求:在校驗字符串時,需要去掉其中的特殊字符和空格。首先想到的的就是用正則表達(dá)式。
正則
使用
- Swift 版本
為了方便使用,給 String 添加擴(kuò)展方法
extension String {
func deleteSpecialCharacters() -> String {
let pattern: String = "[^a-zA-Z0-9\u{4e00}-\u{9fa5}]"
let express = try! NSRegularExpression(pattern: pattern, options: .caseInsensitive)
return express.stringByReplacingMatches(in: self, options: [], range: NSMakeRange(0, self.count), withTemplate: "")
}
}
//使用
var str = " Hello, playgr《颖榜、/.,ou nd**123圣誕節(jié)付款 "
print(str.deleteSpecialCharacters())
//輸出結(jié)果
//Helloplayground123圣誕節(jié)付款
- Objective-C 版本
在 Objective-C 中,可對NSString 添加category煤裙,并在category中實習(xí)如下方法
+ (NSString *)deleteSpecialCharacters:(NSString *)targetString {
if (targetString.length == 0 || !targetString) {
return nil;
}
NSError *error = nil;
NSString *pattern = @"[^a-zA-Z0-9\u4e00-\u9fa5]";//正則取反
NSRegularExpression *regularExpress = [NSRegularExpression regularExpressionWithPattern:pattern options:NSRegularExpressionCaseInsensitive error:&error];//這個正則可以去掉所有特殊字符和標(biāo)點
NSString *string = [regularExpress stringByReplacingMatchesInString:targetString options:0 range:NSMakeRange(0, [targetString length]) withTemplate:@""];
return string;
}