首先说什么是正则:正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。再说白点就是,它是一个字符串,解决特殊字符的!
今天举例是对一个发票抬头的text做一个特殊字符的限制!
正则表达式已经拼好:"[a-zA-Z0-9\\u4e00-\\u9fa5]+"
第一步:是封装公共类一个方法!直接上代码
//!正则表达式
- (BOOL)regularVerificationWithRegex:(NSString *)regex AndObject:(id)obj {
NSString *regexSample = regex;
NSPredicate *regextestSample = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regexSample];
return [regextestSample evaluateWithObject:obj];
}
参数说明: regex: 字符串形式的正则表达式
obj: 要检查的字符串, 如unitTextField.text
-(IBAction)onButtonInvoicesSurePressed:(id)sender
{
if (!self.userAddressdetail.INVOICE_TYPE_ID || self.userAddressdetail.INVOICE_TYPE_ID.length<=0)
{
[UtilityFunctor showAlertWithTitle: @"提示!" message:@"请选择发票类型"];
return;
}
if ([self.userAddressdetail.INVOICE_TYPE_ID isEqualToString: @"2"])
{
if (!self.userAddressdetail.INVOICE_CATEGORY_ID
|| self.userAddressdetail.INVOICE_CATEGORY_ID.length<=0)
{
[UtilityFunctor showAlertWithTitle: @"提示!" message:@"请选择发票分类"];
return;
}
if ([self.unitTextField.text isEqualToString: @""])
{
[UtilityFunctor showAlertWithTitle: @"提示!" message:@"请填写发票抬头"];
return;
}
if (![self regularVerificationWithRegex:@"[a-zA-Z0-9\\u4e00-\\u9fa5]+" AndObject:self.unitTextField.text])
{
[UtilityFunctor showAlertWithTitle: @"提示!" message:@"抬头只支持汉字、字母、数字"];
return;
}
}
self.userAddressdetail.INVOICE_CONTENT = self.unitTextField.text;
if (self.delegate && [self.delegate respondsToSelector:@selector(onButtonInvoicesSurePressed:)])
{
[self.delegate onButtonInvoicesSurePressed: self.userAddressdetail];
}
[self.navigationController popViewControllerAnimated: YES];
}
{
[UtilityFunctor showAlertWithTitle: @"提示!" message:@"抬头只支持汉字、字母、数字"];
return;
}
这段代码意思就是 调用上面封装的方法,把String替换成 @"[a-zA-Z0-9\\u4e00-\\u9fa5]+"、把obj替换成 self.unitTextField.text。方法里面是提示语