我在数据库中实现了一个搜索栏。我解释说我的数据库中有两个用户:“James Da”和“Paul Mo” 我希望当用户搜索“James”时,这将显示“James Da”,但我也希望当他寻找“Da”时,它会显示“James Da,当他寻找”ames“时,它会显示“詹姆斯达”......
我的功能只实现了第一种情况:
NSString *dateString = @"2018-01-04 05:37:01.74";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setLocale:locale];
[dateFormat setTimeZone:[NSTimeZone systemTimeZone]];
[dateFormat setDateFormat:@"YYYY-MM-dd HH:mm:ss.SSS"];
NSDate *date = [dateFormat dateFromString:dateString];
考虑到空间,我应该使用其他条件吗?
答案 0 :(得分:0)
您目前只检查第一个案例:
substr(strtolower($user->getUserFullName()), 0, strlen($name)) === strtolower($name)
substr(strtolower($user->getUserFullName()), 0, strlen($name))
将从用户名中删除第一部分,该用户名最多包含与搜索名称相同的字符数。由于您进行了相同的检查,因此您只需检查完整用户名是否以用户刚刚输入的名称开头。
相反,您可以简化使用stripos
if (stripos($user->getUserFullName(), $name) !== FALSE) {
$users[] = '@' . $user->getUseruniqname() . ':server';
}
这将检查用户输入的字符串是否是用户名的一部分,同时不区分大小写。使用'ames'
等规则会找到'James Do'
,这似乎是准确的。