javascript - 当本地化被引入等式时如何处理字符串长度约束?

标签 javascript web-applications localization internationalization

一旦有搜索输入。
它负责根据用户输入过滤表中的数据。
但是这个搜索输入很特殊:除非输入至少 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/

相关文章:

javascript - 改变 react 形式但输入值不可编辑

javascript - 服务器上的 Angular 链接中断

java - Java中如何查找哪个用户正在使用某个端口

iphone - 在运行时更改 NSLocalizedString() 的语言

localization - WinXP 上的希伯来语密码

javascript - Node.js + Express 最简单的 SPA 示例

javascript - 如何在 JavaScript 中设置 qlikviews 复选框

php - 编写托管在负载平衡服务器中的 Web 应用程序时需要了解哪些事项?

java.net.BindException : Address already in use:8080

html - 根据区域设置设置单个样式表