2016-07-29 4 views
2

Для поля адреса мне нужен первый символ каждого слова в верхнем регистре. Я использовал /\b./g, который в итоге привел к проблеме, когда первый символ после специальных символов, таких как [email protected]*&;' и т. Д., Также заглавны. то есть. King'S Street вместо King's Street.Выражение выражения для вычисления первого символа

Есть ли способ настроить это выражение, чтобы исключить это поведение или изменить все выражение более оптимальным?

+0

JavaScript, не так ли? –

+2

Есть несколько отличных онлайн-инструментов с инструкциями по тестированию вашего регулярного выражения, например. https://regex101.com/ – jimmy

ответ

2

заменить \b с (^|[ ])

Вашего регулярным выражением будет: /(^|[ ])./g

Объяснение:

\b по definition: используются для поиска совпадения в начале или в конце слова.

(^|[ ]) будет совпадать с началом строки или любых символами пробела

(^|[ ]). будет соответствовать всему пространству, за которым следует символ и первым символом строки.

Примечание стороны:

Используйте (^|\s), чтобы соответствовать каждые пробелы.

Ваше регулярное выражение будет: /(^|\s)./g

1

Вы можете использовать предпросмотр:

\b[a-z](?=\w+) 

См a demo on regex101.com.

+0

не будет работать с 'a' и' i'. проверьте это: «Я ученик» ' –

+0

не будет работать с' őúéá' или любыми другими символами юникода. –