2017-02-10 5 views
0

У меня есть angularJS приложения с этой HTML:HTML типа ввода электронная почта не работает для немецких символов как ä ü ö

<input type="email" ng-model="model.email" 
    pattern="[\u0020-\u0039\u0041-\u007E][email protected]@.+\..+" 
    ng-class="{ invalid : formB.email.$dirty && formB.email.$invalid }" required> 

Это дополнительно гарантирует, что «тест @ Yahoo» не действительный адрес электронной почты.

Теперь я хочу, чтобы позволить сообщений электронной почты с ö ü символов, поэтому я изменил его на этом регулярное выражение:

pattern="[\u0020-\u0039\u0041-\u007E\u00E4][email protected]@.+\..+" 

ä => \u00E4 

по электронному «[email protected]äil.com» по-прежнему недействительным, но почему? Возможно, это стартер регулярных выражений.

Мне нужно это обходное решение, потому что ä ö ü не разрешено вводить html-адрес электронной почты с помощью firefox, например!

ответ

0

Это то, что вы ищете. JavaScript не учитывает эти символы, которые вы должны быть более конкретными.

Регулярные символы [A-Za-z0-9 -_ äöüß и др.]

Unicode:. Вы можете ссылаться на них здесь http://www.utf8-chartable.de/

[A-Za-z0-9 -_ \ u00C0 - \ u00D6 \ u00D8- \ u00F6 \ u00F8- \ u00FF]

+0

dont get it ... но \ u00E4 был правильным unicde для 'ä', что означает ваше регулярное выражение в последней строке? Я вижу там нет 'ä' – Pascal

+0

Извините, я просто набрал несколько случайных символов, которые я видел быстро. Я надеюсь, что мне помог URL. –

+0

Я использую это http://regexr.com/, чтобы помочь проверить регулярное выражение. Не моя специальность –