Машинописный текст Angular 2 - используйте каждое слово при вводе с заглавной буквы

У меня есть угловая форма, например:

<mat-form-field>
    <input
        matInput
        placeholder="Name">
</mat-form-field>

Мне нужно использовать каждое слово при вводе с заглавной буквы. Я использовал следующий код:

input.value = current.replace(/\b(\w)/g, symbol => symbol.toLocaleUpperCase());

но он не использует заглавные буквы, такие как «ľščťžýáíé...», как я могу это решить?

После вставки "abcděf čdef" возвращается "AbcděF čDef" (просто пример)


person User    schedule 09.10.2017    source источник


Ответы (2)


\b не является границей слова (т.е. \b создаст границу для любого любого символа, который не принадлежит ни одному из 1 из [0-9a-zA-Z_])

Таким образом, эти слова с ударением становятся границей для вашего слова.

Вместо этого используйте это регулярное выражение

         /(^|\s)[a-z\u00E0-\u00FC]/g
person sdfbhg    schedule 09.10.2017
comment
вы уверены?, проверьте это stackoverflow.com/questions/16573099/ - person sdfbhg; 09.10.2017
comment
решено, проверьте мой ответ, он не просто принимал символы после ü - person User; 09.10.2017

РЕШЕНО:

заменено исходное регулярное выражение: /\b(\w)/g
новым регулярным выражением: /(^|\s)[a-zà-ᜎ]/g

person User    schedule 09.10.2017