【发布时间】:2012-03-05 17:51:36
【问题描述】:
如果我尝试匹配带有变音符号的正则表达式字符串(类似于 ^[a-zA-Z0-9áàAÁÁ ]{0,100}$),它将匹配服务器端的 Báhhh(我调用了两次相同的验证)但会在客户端失败。我已经更改了java类的编码,但仍然不匹配。
是否有一个特殊的 gwt 正则表达式类用于变音符号或者我错过了什么?
【问题讨论】:
标签: java regex gwt diacritics
如果我尝试匹配带有变音符号的正则表达式字符串(类似于 ^[a-zA-Z0-9áàAÁÁ ]{0,100}$),它将匹配服务器端的 Báhhh(我调用了两次相同的验证)但会在客户端失败。我已经更改了java类的编码,但仍然不匹配。
是否有一个特殊的 gwt 正则表达式类用于变音符号或者我错过了什么?
【问题讨论】:
标签: java regex gwt diacritics
奇怪,/^[a-zA-Z0-9áàAÁÁ ]{0,100}$/.test('Báhhh') 在 Chrome 的 JS 控制台中为我返回了 true。
我怀疑这是 Unicode 问题,á 可以用多种方式编码:U+0061 U+0301、U+0061 U+0341 或 U+00E1。
不妨试试/^(?:[a-zA-Z][\u0301\u0341]?|[áàÁÁ0-9 ]){0,100}$/
【讨论】:
Java 和 JavaScript 正则表达式在实现上存在差异,可能并不总是清晰可见。我建议您对每种情况使用不同的验证器 - 看看 RegExp in GWT 类:
两者之间有一些小的不兼容 实施。正则表达式中特定于 Java 的结构 语法(例如 [a-z&&[^bc]]、(?
【讨论】: