我正在创建快速搜索rails应用功能。任何有关如何构建以下匹配规范的帮助将不胜感激。
基本上,当用户输入要搜索的名称时,他们应该根据以下匹配条件获得结果。
accept match on first 3 chars (e.g. Jon for Jones)
reject match on less than 3 chars (e.g. Jo for Jones)
accept exact match for 2 char author name (e.g. Li for Li)
reject exact match on 1 char author name
reject mismatch on chars beyond 3 (e.g. reject Jonis for Jones)
这可以用正则表达式完成吗?
答案 0 :(得分:1)
matchto = 'Jones'.downcase
input = 'Jon'.downcase
matchto.start_with?(input) && 1 < input.length &&
( input.length == matchto.length || 2 < input.length )