一旦有搜索输入。
它负责根据用户输入过滤表中的数据。
但是这个搜索输入很特殊:除非输入至少 3 个字符,否则它不会执行任何操作。
不是因为它懒惰,而是因为它没有其他意义。
一切都很好,直到一种新的、陌生的(与英语相比)语言出现。
这是日语,现在最小字符串长度为 3 是愚蠢和无用的。
我丢失了那个故事的最后几页。有人记得它的结局吗?
最佳答案
为了解决这个问题,您显然需要确定用户的输入是否属于某些脚本。最明显的方法是使用 Unicode Regular Expressions :
var regexPattern = "[\\p{Katakana}\\p{Hiragana}\\p{Han}]+";
唯一的问题是,JavaScript 不支持这种开箱即用的正则表达式。无论如何,你很幸运 - 有一个名为 XRegExp 的 JS 库及其 Scripts附加组件似乎正是您所需要的。现在,问题是,您是否要为非日语或非中文用户要求至少三个字符,或者以其他方式要求 - 对于某些脚本(拉丁语、通用语、西里尔语、希腊语和希伯来语)要求至少三个字符,而允许在一个字符上搜索任何其他字符。我建议第二种解决方案:
if (XRegExp('[\\p{Latin}\\p{Common}\\p{Cyrillic}\\p{Greek}\\p{Hebrew}]+').test(input)) {
// test for string length and call AJAX if the string is long enough
} else {
// call AJAX search method
}
您可能希望预编译正则表达式以获得更好的性能,但基本上仅此而已。
关于javascript - 当本地化被引入等式时如何处理字符串长度约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22700527/