Regex for Umlaut
我将JS动画联系表单与以下验证正则表达式一起使用:
1 | rx:{".name":{rx:/^[a-zA-Z'][a-zA-Z-' ]+[a-zA-Z']?$/,target:'input'}, other fields... |
我刚刚发现,我无法输入"Müller"之类的名称。 正则表达式将不接受此。 为了允许Umlauts,我该怎么办?
您应在正则表达式unicode代码中使用字符,例如
对于德语,我找到了下表:
1 2 3 4 5 6 | Zeichen Unicode ------------------------------ ?, ? \\u00c4, \\u00e4 ?, ? \\u00d6, \\u00f6 ü, ü \\u00dc, \\u00fc ? \\u00df |
(来源http://javawiki.sowas.com/doku.php?id=java:unicode)
尝试使用此:
1 | /^[\\u00C0-\\u017Fa-zA-Z'][\\u00C0-\\u017Fa-zA-Z-' ]+[\\u00C0-\\u017Fa-zA-Z']?$/ |
我已将Unicode范围
鉴于
归功于https://stackoverflow.com/a/11550799/940252。
我想出了不同范围的组合:
1 | [A-Za-zà-?\\u0370-\\u03FF\\u0400-\\u04FF] |
- 变音标记:[à-?]
-
希腊语和科普特语:
[\ u0370- \ u03FF] - 西里尔文:[\ u0400- \ u04FF]
但我看到它缺少@SambitD提案的某些字母,请参阅:https://rubular.com/r/2g00QJK4rBS8Y4
我用了
A-Za-z-á???????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????? M M M ?????????????????????????????????ī m m m?m ???ňP P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P ????????????????????????????????????????????????????????????????????????????????????????????? ?????????????
t; tru
\ uXXXX方法的问题在于,并非所有正则表达式都支持它。 例如,Visual C ++不支持它。
在那里,您需要枚举实际字母。
我建议使用诸如https://www.regexbuddy.com/之类的工具,该工具应尽可能了解多种口味。