Регулярное выражение для Umlaut

Я использую JS Animated Contact Form с этой строкой регулярного выражения:

rx:{".name":{rx:/^[a-zA-Z'][a-zA-Z-' ]+[a-zA-Z']?$/,target:'input'}, other fields...

Я только узнал, что я не могу ввести имя типа "Мюллер". Регулярное выражение не примет этого. Что мне делать, чтобы разрешить также Umlauts?

Ответ 1

Вы должны использовать в своих кодах юникода регулярного выражения символы, например \u0080. Для немецкого языка я нашел следующую таблицу:

Zeichen     Unicode
------------------------------
Ä, ä        \u00c4, \u00e4
Ö, ö        \u00d6, \u00f6
Ü, ü        \u00dc, \u00fc
ß           \u00df

(источник http://javawiki.sowas.com/doku.php?id=java:unicode)

Ответ 2

Попробуйте использовать это:

/^[\u00C0-\u017Fa-zA-Z'][\u00C0-\u017Fa-zA-Z-' ]+[\u00C0-\u017Fa-zA-Z']?$/

Я добавил диапазон unicode \u00C0-\u017F к началу каждой из групп квадратных скобок.

Учитывая, что /^[\u00C0-\u017FA-Za-z]+$/.test("aeiouçéüß") возвращает true, я ожидаю, что он будет работать.

Кредит fooobar.com/questions/3944/....

Ответ 3

я использовал

A-Za-Z-ÁÀȦÂÄǞǍĂĀÃÅǺǼǢĆĊĈČĎḌḐḒÉÈĖÊËĚĔĒẼE̊ẸǴĠĜǦĞGĢĤḤáàȧâäǟǎăāãåǻǽǣćċĉčďḍḑḓéèėêëěĕēẽe̊ẹǵġĝǧğgģĥḥÍÌİÎÏǏĬĪĨỊĴĶǨĹĻĽĿḼMM̄'NŃNṄN̈ŇN̄ÑŅṊÓÒȮȰÔÖȪǑŎŌÕȬŐỌǾƠíìiîïǐĭīĩịĵķǩĺļľŀḽmm̄ʼnńnṅn̈ňn̄ñņṋóòôȯȱöȫǒŏōõȭőọǿơP̄ŔŘŖŚŜṠŠŞṢŤŢṬṰÚÙÛÜǓŬŪŨŰŮỤẂẀŴẄÝỲŶŸȲỸŹŻŽẒǮp̄ŕřŗśŝṡšşṣťţṭṱúùûüǔŭūũűůụẃẁŵẅýỳŷÿȳỹźżžẓǯßœŒçÇ

который поддерживает почти все символы в Европе. Источник истины

Ответ 4

Проблема с подходом \uXXXX заключается в том, что он поддерживается не всеми разновидностями Regex. Например, Visual C++ не поддерживает его. Там вам нужно будет перечислить реальные буквы.

Я рекомендую использовать такой инструмент, как https://www.regexbuddy.com/, который знает как можно больше вкусов.